اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

البحث عن الاسماء الرباعية في الاكسس أو الاكسل


نيموز
إذهب إلى أفضل إجابة Solved by AbuuAhmed,

الردود الموصى بها

السلام عليكم ورحمة الله

عندي قائمة اسماء في اكسل تقريبا 6 الاف اسم رباعية

يعني اسم واسم الاب والجد والعائلة ولكن فيه اسماء نقص يعني بدون اسم العائلة او بدون اسم الجد تكون اسم ثلاثي مش رباعي

سؤالي هو :

كيف افرز الاسماء الناقصة سواء في كود اكسس او بطريقة اخرى

وشكرا

رابط هذا التعليق
شارك

32 دقائق مضت, نيموز said:

السلام عليكم ورحمة الله

عندي قائمة اسماء في اكسل تقريبا 6 الاف اسم رباعية

يعني اسم واسم الاب والجد والعائلة ولكن فيه اسماء نقص يعني بدون اسم العائلة او بدون اسم الجد تكون اسم ثلاثي مش رباعي

سؤالي هو :

كيف افرز الاسماء الناقصة سواء في كود اكسس او بطريقة اخرى

وشكرا

وعليكم السلام

هل الاسم في حقل واحد ام الاسم نجزأ بمعنى اسم الابن في حقل والاب في حقل وهكذا....

  • Like 1
رابط هذا التعليق
شارك

22 دقائق مضت, نيموز said:

الاسماء في حقل واحد وليست مجزئة

اذا كانت الاسماء مكتبوبة باللغة العربية هذه مشكلة ... لاننا حتى لو حاولنا تجزأة هذه الاسماء سوف نواجه الاسماء المركبة واسماء عبد وغيرها .. الا اذا كان للخبراء رأي اخر ننتظر الحلول

  • Like 1
رابط هذا التعليق
شارك

26 دقائق مضت, نيموز said:

لا الاسماء في حقل واحد وليست مجزئة

إذا كنت ستعتمد على عد المسافات بين الأسماء .. فيمكنك استخدام الدالة التالية لعد المسافات الفاصلة بين الأسماء بغض النظر عن الأسماء ذوات الضروف الخاصة كالأسماء المركبة وغيرها ..

1- أضف حقل محسوب في الاستعلام وهذه قيمته ( تستبدل Text باسم حقل الأسم )  :

Len(Text) - Len(Replace(Text; " "; ""))

2- في المعيار أسفل هذا الحقل تكتب الرقم   3   وذلك ليحضر لك الأسماء الرباعية ..

    أو تكتب الرقم    2    ليحضر لك الأسماء الثلاثية

  • Like 1
رابط هذا التعليق
شارك

  • أفضل إجابة

بالاستفادة من فكرة الأستاذ موسى،
دالة لتعطيك مخرج نعم/لا للاسم الذي يحتوي على عدد الأجزاء المطلوبة، ولا داعي لطرح واحد من عدد الأجزاء:
 

Option Explicit

Function NamePartsCounter(ByVal sName As String, ByVal Parts As Byte) As Boolean
    Parts = Parts - 1
    sName = Trim(sName)
    
    Do While InStr(1, sName, "  ") > 0
        sName = Replace(sName, "  ", " ")
    Loop
    
    NamePartsCounter = Parts = (Len(sName) - Len(Replace(sName, " ", "")))
    
    'If NamePartsCounter Then Debug.Print sName
End Function



'إجراء لفحص الدالة
Sub test()
    Debug.Print NamePartsCounter("عبدالله     أحمد  علي", 3)
End Sub

وأنصح في تخزين الأسماء باستخدام الـ "أندرسكور" بدلا من المسافة ، وعند العرض يتم معالجة الأسماء بتديل الأندرسكور بالمسافة باستخدام دالة Replace

تم تعديل بواسطه AbuuAhmed
  • Like 1
رابط هذا التعليق
شارك

7 ساعات مضت, AbuuAhmed said:

دالة لتعطيك مخرج نعم/لا للاسم الذي يحتوي على عدد الأجزاء المطلوبة

مثال على استخدام الدالة:
 

فحص_عدد_أجزاء_الاسم_01.accdb

رابط هذا التعليق
شارك

شكرا استاذي العزيز  Moosak

ساجرب هذه الطريقة

وشكرا للمساعدة استاذ AbuuAhmed

ان شالله ساجرب هذا الكود واعتقد تنجح هذه الفكرة وبمساعدة طريقة الاستاذ Moosak

شكرا للمساعدة

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information