تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف أستخدم دالة معرفة مسبقاً ضمن الاستعلام؟
#13
(03-11-20, 01:20 PM)Anas Mahmoud كتب : السلام عليكم ورحة الله وبركاته

المشكلة استاذي في منطق الدالة ReplaceString نفسه ، 

strChar هو حرف وحيد ولا يمكن استخدامه داخل Select Case لاختبار اكثر من حرف مثل "ال" او "ابن"

جربت نفس الطريقة ولكني عدلت الدالة لتبحث عن البادئات اولا وتمسحها ومن ثم تبحث عن الحروف الغريبة  :
كود :
   Public Function ReplaceString(In_Text As String) As String
       Dim X As Long
       Dim strChar As String
       Dim strReturn As String
       strReturn = ""



       If In_Text.StartsWith("ابن") Then
           In_Text = In_Text.Substring(3, In_Text.Length - 3)
       End If
       If In_Text.StartsWith("أبو") Then
           In_Text = In_Text.Substring(3, In_Text.Length - 3)
       End If
       If In_Text.StartsWith("ال") Then
           In_Text = In_Text.Substring(2, In_Text.Length - 2)
       End If
       For X = 1 To Len(In_Text)
           strChar = Mid(In_Text, X, 1)
           Select Case strChar
               'Case "ال"
               '    strChar = ""
               'Case "ابن "
               '    strChar = ""
               'Case "أبو "
               '    strChar = ""
               Case Chr(243), Chr(240), Chr(245), Chr(246), Chr(242), Chr(241), Chr(248), Chr(250)
                   strChar = ""
           End Select
           strReturn = strReturn & strChar
       Next
       ReplaceString = strReturn
   End Function

والنتيجة :



اتمنى ان هذا ما كنت تريده

أشكرك جداً على اهتمامك، وأرجو أن نصل في النهاية للحل.

للأسف هذا الحل خطأ كما يظهر في صورتك:
ابن ماجه: بعد تجاهل (ابن) يصبح (ماجه)؛ إذن يجب أن يأتي ترتيبه في الميم؛ أي بعد (كتبي) وقبل (مختار).

مثال آخر:
أبو جيب: بعد تجاهل (أبو) يصبح (جيب)؛ إذن يجب أن يأتي ترتيبه في الجيم؛ أي بعد (الجرجاني) وقبل (الحاكم).

أرجو التكرم بالتعديل لنصل للنتيجة المرجوة، وجزاك الله ووالديك الفردوس الأعلى

عدَّلت في كودك فوصلت للحل، والتعديل هنا:
كود :
In_Text = In_Text.Substring(3, In_Text.Length - 3)

إلى:
كود :
In_Text = In_Text.Substring(4, In_Text.Length - 4)

وذلك من أجل حذف المسافة بعد (ابن) و(أبو).

أخي الحبيب أنس محمد، أسأل الله تعالى أن يبيض وجهك، وأن يرفع قدرك ومقدارك في الدنيا والآخرة، وأن يرزقك من حيث تحتسب ومن حيث لا تحتسب
Smile
فاعلم أنه لا إله إلا الله
الرد }}}
تم الشكر بواسطة: Anas Mahmoud , asemshahen5


الردود في هذا الموضوع
RE: كيف أستخدم دالة معرفة مسبقاً ضمن الاستعلام؟ - بواسطة السندبااد - 03-11-20, 01:29 PM


التنقل السريع :


يقوم بقرائة الموضوع: