اذهب الي المحتوي
أوفيسنا

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

قام بنشر

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

احبتي كتبت هذا الكود لاجبار المستخدم علي كتابة اسم العميل رباعيا حتي لا يتكاسل في كتابة الاسم ويكتفي باس واحد أو اثنين مما يؤدي الي الوقوع في مشكلة تشابه الأسماء.

Public Function TestFourthName(ByVal tx As String) As Integer
Dim abd As String
abd = ChrW(1593) & ChrW(1576) & ChrW(1583)
If InStr(1, tx, abd) > 0 Then
    TestFourthName = (Len(tx) - Len(Replace(tx, " ", "")))
    If TestFourthName = 3 Then
        TestFourthName = TestFourthName + 1
    End If
Else
    TestFourthName = (Len(tx) - Len(Replace(tx, " ", ""))) + 1
End If
End Function

وعمل الكود بشكل جيد مع الأسماء التي لا تحوي كلمة "عبد" فعند ادخال المسافة بين عبد واسم الجلالة يعتبر الاسم اثنين :blink:

أرجو التعديل علي الكود لتجاوز هذه الاشكالية أو ابداء فكرة لمعالجة هذا الأمر بأقل خسائر 😁

وجزاكم الله عنا خيرا

  • الردود 58
  • Created
  • اخر رد

Top Posters In This Topic

قام بنشر

مبدئيا قبل ما افكر برمجيا 

اعمل الاسم على اربع مربعات نص غير منضمين وبعد الكتابة يتم تجميعه فى مربع نص الاسم  مش لازم نصعبها بالاكواد :eek2:

ولا تنسى لو فكرنا برمجيا فى كلمة عبد الله وباقى العبادله

ماذا سنفعل للاسماء المركبة

نور الدين , منة الله  , هبة الله , جاه الرسول 

 

  • Like 2
قام بنشر
25 دقائق مضت, أبو عبدالله الحلوانى said:

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

احبتي كتبت هذا الكود لاجبار المستخدم علي كتابة اسم العميل رباعيا حتي لا يتكاسل في كتابة الاسم ويكتفي باس واحد أو اثنين مما يؤدي الي الوقوع في مشكلة تشابه الأسماء.

ممكن مرفق للتجربة

قام بنشر
7 دقائق مضت, ابا جودى said:

مبدئيا قبل ما افكر برمجيا 

اعمل الاسم على اربع مربعات نص غير منضمين وبعد الكتابة يتم تجميعه فى مربع نص الاسم  مش لازم نصعبها بالاكواد :eek2:

ولا تنسى لو فكرنا برمجيا فى كلمة عبد الله وباقى العبادله

ماذا سنفعل للاسماء المركبة

نور الدين , منة الله  , هبة الله , جاه الرسول 

جزاك الله خيرا

لم يتبادر الي ذهني تلك الأسماء المركبة :blink: ما فكرت في غير العبادلة 

ولكن الاشكالية أن البيانات المدخلة ستكون حساسة بالنسبة للاسم أي انه بمجرد ادخال الاسم من المفترض انه سيتم البحث عنه بالبيانات المخزنة لربط بيانات العميل القديمة بالجديدة من خلال كود آخر .

كلامك له وجاهة - ولكن سيطرني لاجزاء تعديلات كثيرة تأخذ وقت ليس بقليل :yes:

ولكن لو كان الحل في كتابة كود لكان أسهل واسرع.

 

وجزاكم الله خيرا

قام بنشر

هذه مرفق للتجارب

Test Four Name.rar

هو احنا بنكتب الرد ليه مع بعض في وقت واحد كدا ( هو دا اللي اسمه تلاقي الأرواح ولا اليه ) 😀🤔

  • Haha 1
قام بنشر
3 دقائق مضت, أبو عبدالله الحلوانى said:

هذه مرفق للتجارب

هو احنا بنكتب الرد ليه مع بعض في وقت واحد كدا ( هو دا اللي اسمه تلاقي الأرواح ولا اليه ) 😀🤔

🥰:wub: انهو ارواح ياللى يحضرها الاستاذ @jjafferr بالبخور تبعه :biggrin:

انت ياللى تختار الوقت اللى اشارك فيه وتنشل 

طيب جرب انت المرفق تبعى... منتظر ردك :yes:

بس لا تكتب وتشارك بنفس الوقت تبعى :eek2:

  • Haha 1
قام بنشر
45 دقائق مضت, أبو عبدالله الحلوانى said:

ولكن الاشكالية أن البيانات المدخلة ستكون حساسة بالنسبة للاسم أي انه بمجرد ادخال الاسم من المفترض انه سيتم البحث عنه بالبيانات المخزنة لربط بيانات العميل القديمة بالجديدة من خلال كود آخر .

السلام عليكم

اول اجابة للاستاذ محمد رائعة اعجبتني جدا

ولكنني لما تصفحت مثاله هالني  كثرة هذه الأكواد وخاصة الموجود في الوحدة النمطية

وحتى نطبق فكرة ابي جود نريد منك ايضاح عملية البحث التي تجري بعد كتابة الاسم الرباعي

يكفي عن الايضاح ان تكتب لنا  كود البحث  هنا .

  • Like 1
  • Haha 1
قام بنشر (معدل)
5 دقائق مضت, ابوخليل said:

السلام عليكم

اول اجابة لمحمد رائعة اعجبتني جدا

ولكنني لما تصفحت مثاله هالني  كثرة هذه الأكواد وخاصة الموجود في الوحدة النمطية

وحتى نطبق فكرة ابي جود نريد منك ايضاح عملية البحث التي تجري بعد كتابة الاسم الرباعي

يكفي عن الايضاح ان تكتب لنا  كود البحث  هنا .

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

اهلا اهلا اهلا استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @ابوخليل :fff:

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

اعرف ان الكواد كثيرة 

ولكن اعتقد حسب متطلبات الاستاذ @أبو عبدالله الحلوانى تلك اقرب فكرة تجول ببالى رغم كثرة الاكواد بها اعرف :biggrin:

وطبعا لا يفتى ومالك فى المدينة واذا حضر الماء قطعا بطل التيمم

احس الاستاذ @أبو عبدالله الحلوانى موجود ويراقب فى صمت

خاصة بعد تجربة المرفق بكثرة الاكواد فيه انصدم شكله  حتى ما اخبر عن نتيحة التجربة ولا عن رأيه 🤣

 

 

تم تعديل بواسطه ابا جودى
قام بنشر

فكرة الحل عندي هي تماما فكرتك الأولى  بدون اكواد 

كود بسيط يكون كوسيط  ، كيف ؟

نكتب الاسماء في الحقول الغير منضمة ، ونعمل دالة تصنع الاسم الرباعي ( او بمعنى اصح تجمع الحقول الاربعة مع المسافات) وهي التي نجري عليها البحث

فان كانت صحيحة تم نسخها الى حقل الاسم المنضم 

والا تظهر رسالة تنبيه بالتعديل المطلوب

  • Like 1
قام بنشر
1 دقيقه مضت, ابوخليل said:

السلام عليكم

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

2 دقائق مضت, ابوخليل said:

اول اجابة للاستاذ محمد رائعة اعجبتني جدا

ولكنني لما تصفحت مثاله هالني  كثرة هذه الأكواد وخاصة الموجود في الوحدة النمطية

نفس الشعور ولكن اخي واستاذي محمد قد أوضح هذا بكلامه الأول 

 

33 دقائق مضت, ابا جودى said:

فكرة لفة شوية طبعا ممكن تحتاج الى اختزال

 

4 دقائق مضت, ابوخليل said:

وحتى نطبق فكرة ابي جود نريد منك ايضاح عملية البحث التي تجري بعد كتابة الاسم الرباعي

يكفي عن الايضاح ان تكتب لنا  كود البحث  هنا .

جزاكم الله خيرا 

أما عن هذه فأنا أحتاج عند ادخال اسم عميل جديد بمعاملة جديدة أن يبحث هل هذا العميل له بيانات سابقة أم لا؟!

ان كانت البيانات السابقة مطابقة للجديدة يطلب من المستخدم:

1-هل يريد اضافة معاملة جديدة لنفس المعاملة السابقة وفي هذه الحالة سيستفيد العميل من بعض الميزات عن ما ان كانت هذه المعالملة للمرة الأولي!

2- أو تعديل المعاملة السابقة!

3- أو التراجع عن الحفظ!

ثانيا - وهذه الجزئية تحت الانشاء: ان كانت المعاملة تختلف عن المعاملة السابق سيتم تخزين قيمة أن للعميل معاملة مختلفة أخري! هذه المعلومة ستفيد لاحقا عند احتساب المبلغ المستحق علي العميل مقابل المعاملة الجديدة.

أرجو أن يكون اضاحي لا يحتاج الي ايضاح😁

أما عن كود البحث فهذا هو

 

If Nz(DCount("CustName", "ContCustNameLiklyQry"), 0) <> 0 Then
    Me.List409.Visible = True
    Me.List409.Move (CustName.Left), Me.CustName.Top, 4032, Me.List409.Height
    Me.List409.SetFocus
Else

End if

ContCustNameLiklyQry 'هذا الاستعلام يحمل بعض المعاير المستخدمة في عملية ايجاد الاسماء المتشابهة
List409 'وهذا الليست يحوي مجموعة الخيارات المعروضة علي المستخدم في حالة ايجاد اسماء متشابهة

 

قام بنشر

انا كنت عامل كود بسيط لتفكيك الاسم ، يحسب حساب كلمة "عبد" ،

فياريت ترفق لنا مرفق فيه بعض الاسماء علشان نجرب عليها 🙂
 

وطبعا ، ادخال الاسماء الاربعة مفككة هي الطريقة الصحيحة 🙂


جعفر

  • Like 2
قام بنشر
16 دقائق مضت, ابا جودى said:

خاصة بعد تجربة المرفق بكثرة الاكواد فيه انصدم شكله  حتى ما اخبر عن نتيحة التجربة ولا عن رأيه 🤣

لم أنصدم ولكن كنت أحاول تتبع الأكود فقط لأفهم العمل الذي تم فيها لذي تأخرت بالرد واعتذر

أعجبتني فكرة الجدول الذي يحوي الأسماء الموصولة والغير موصولة هذه 

جزاكم الله خيرا

11 دقائق مضت, ابوخليل said:

فكرة الحل عندي هي تماما فكرتك الأولى  بدون اكواد 

كود بسيط يكون كوسيط  ، كيف ؟

وبانتظار مثال من أستاذنا ومعلمنا الجليل علي الفكرة المطروحة (بدون أكواد!!!)

وجزاكم الله عنا خيرا 

قام بنشر (معدل)

على العموم ما قدرت قوم بعمل اختزال اكثر من ذلك 

على الرغم من اجماع اساتذتى الكرام على أن ادخال الاسماء الاربعة مفككة هي الطريقة الصحيحة 

المرفق الاتى هو فقط تعديل لمرفقكم 
مثل ما ينحكى الفكرة تعتمد على مصطلح الهندسة العكسية

 

جرب ادخال 

هبة الله نور الدين عبد الرحمن

ما راح يقبل لانه مو رباعى :yes: واظن هاد الاسماء الثلاثة مركبة 

 

Test Four Name.mdb

تم تعديل بواسطه ابا جودى
قام بنشر
12 دقائق مضت, jjafferr said:

فياريت ترفق لنا مرفق فيه بعض الاسماء علشان نجرب عليها 

تفضل يا أستاذي 

هنا جدول SomNamesTbl به بيانات وهمية متشابهة مع الحقيقية

وجزاكم الله عنا خيرا

والله ما أسعد بالحل قدر سعادتي بتواصلي مع اساتذتي وأحبتي بالمنتدي

@ابا جودى @ابوخليل @jjafferr 

أشكركم جميعا وجعله الله بموازين حسناتكم

  • Haha 1
قام بنشر
1 دقيقه مضت, أبو عبدالله الحلوانى said:

تفضل يا أستاذي 

هنا جدول SomNamesTbl به بيانات وهمية متشابهة مع الحقيقية

وجزاكم الله عنا خيرا

والله ما أسعد بالحل قدر سعادتي بتواصلي مع اساتذتي وأحبتي بالمنتدي

@ابا جودى @ابوخليل @jjafferr 

أشكركم جميعا وجعله الله بموازين حسناتكم

وانا كمان سعيد

بس  هنا جدول SomNamesTbl 

هنا وين 

قام بنشر

طيب لاحظت الاتى بالاسماء

عبدالله عبدالرحمن محمد حسن

يجب الانتباه ان كتبت فى المرة المقبلة

عبد الله عبد الرحمن محمد حسن

هل  يكون اسم جديد ام اسم قديم ؟؟؟!!1

 

قام بنشر

طبعا في اسماء يجب التعامل معها بطريقة خاصة ، وتقدر تدخلها في الوحدة النمطية ،

ولكن اليك ما تعمله الوحدة النمطية:

Function SP(M, N)
On Error GoTo err_SP

    Dim A As Integer
    
'testing
If M = "äæÑÇáÏíä Úáã ÇáÏíä ÚÈÏ ÇáÍÝíÙ" Then
A = 1
End If

    'SP = Seperate Mother's name to its names
    'M = Mothers name
    'N = Which part of the name we are looking for
    
    Dim x() As String
     
     'check if ÚÈÏ has a space after it, if not, add the space
    If InStr(M, "ÚÈÏ") > 0 Then
        M = Replace(M, "ÚÈÏ", "ÚÈÏ ")
    End If
    
    
    M = Replace(M, "   ", " ")
    M = Replace(M, "  ", " ")
    M = RTrim(M)
    M = LTrim(M)
        
    'insert | to distinguish the combined names
    M = Replace(M, "ÚÈÏ ", "ÚÈÏ|")
    
    x = Split(M, " ")
    
'1st name
    If N = 1 Then

            SP = x(0)

'2nd name
    ElseIf N = 2 Then

            SP = x(1)

'3rd name
    ElseIf N = 3 Then

            SP = x(2)
   
'4th name
    ElseIf N = 4 Then

            SP = x(3)
    
    End If

    'Remove the extra |
    SP = Trim(Replace(SP, "ÚÈÏ|", "ÚÈÏ "))
    
Exit Function
err_SP:

    If Err.Number = 94 Then
        'mother null
        SP = ""
        
    ElseIf Err.Number = 9 Then
        SP = ""
    
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Function

 

جعفر

1313.Test Four Name.mdb.zip

  • Like 2
قام بنشر
1 دقيقه مضت, ابا جودى said:

عبد الله عبد الرحمن محمد حسن

هل  يكون اسم جديد ام اسم قديم ؟؟؟!!1

قد راعيت هذا عند اختيار الأسماء وراعيت أن يتم اثبات المسافة في بعض الأسماء واهمالها بالبعض الآخر

طبعا لابد أن يكون الاسم القديم والا فسيكون اسم العميل الواحد اسما جديدا في كل مرة تتغير بها طريقة كتابة المستخدم للاسم

ولكن اعتقد أن هذا سيغير مجال النقاش قليلا 

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

ملاحظة جيدة 

أم عن نتيجة التجربة للمرفق الأول والثاني لكم فنتائج مزهلة وموافقة للمطلوب وجزاكم الله خيرا

 

 

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