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

هل من طريقة لاجبار المستخدم علي ادخال الاسم رباعيا


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

في ٣‏/١‏/٢٠٢١ at 10:00, Hawiii said:

نوعية الأسماء تختلف من بلد إلى بلد ، لدرجة صعوية حصرها ، نعم لو كان المطلوب للسعودية فالعملية ستسهل لأن هناك تشديد في التسمية ومنع الأسماء المركبة وأمور أخرى.
أرى من اقترح بعمل أربع خانات ثم تجميعها أفضل ولا مانع من حفظ الإسم بأربع حقول الأول الثاني الثالث الأخير.

فيه طريقة استخدمها أنا أحيانا لجمع عدة قيم ولتفكيكها أيضا بالشكل التالي:
أحمد|محمد|عبدالله|الشاكر
وسنعرف بالضم أو التفكيك إذا أحدها ناقص أو ترتيبها:
فلو اسم الجد غير متوفر سيكون النص كالتالي:
أحمد|محمد||الشاكر
وهكذا.

في الاقتباس حل التجميع والتخزين

وأقترح في الكتابة للأسماء المركبة استخدام الشرطة السفلى إن صح التعبير "_" كـ : محمد_علي ، بو_سعد .. وهكذا
وسيمنع كتابة المسافة وتحويلها مباشرة إلى (أندر سكور) وعند التفكيك تحول إلى مسافة.

هكذا يخزن الاسم في الجدول أبو_الوليد|محمد_علي|صالح|الشاكر
وفي العرض بعد المعالجة سيكون : أبو الوليد محمد علي صالح الشاكر

وإذا لا تهمكم مساحة التخزين فاحفظوها منفصلة كما الإدخال وارتاحوا من مشاكل التجميع والتفكيك.

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

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

Top Posters In This Topic

9 ساعات مضت, sandanet said:

استاذي العزيز ابو عبدالله ماتفضلت به ليس هو الحل الذي نتطلع للوصول اليه كمبرمجين

أولا- وقبل كل شئ أنت تعلم أني أحب المزاح فلا يكن في صدرك حرج من ردي السابق (دائما أمزح وأورط نفسي ثم أضطر للاعتذار ولكن يعلم الله أني لا أقصد سوي رسم البسمة علي الوجوه هكذا :biggrin:)

ثانيا- 

9 ساعات مضت, sandanet said:

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

نعم ولا شك كلام حضرتك صحيح 100% ولذلك كان وجود الجدول للملئ من قبل المستخدم لما يستجد من لواحق غير موجود بالجدول مسبقا - ثم ان اللواحق في الاسماء في الغالب الأعم لن تتجاوز ما هو مشهور كـ ( عبد ) ويلحقها كل مضاف اليها فلن نضطر لاضافة الملحق بها وانما كلمة عبد فقط وينطبق الكلام كذلك علي (أبو - أم - بو ) طبعا مع مراعاة كتابة هذه الكلمات بأشكالها المتوقعة من اضافة الهمزات واهمالها

أما ما هو غير مشهور من لواحق فلن يكون كثير وحدوث مشكلة بسببه ستكون نادرة نوعا ما!  مما سيسهل حصره واماكنية اضافته بعد الي جدول اللواحق 

أما عن وجود طريقة منطقية تحكم تلك اللواحق الغير معلومة (غير وجود هذا الجدول) فلا سبيل لي بايجادها - ويبدو أن نقاش حضرتك سيتفتق عن وجود حل عبقري يكون مثالا يحتذا به بعد فننتظر ابداعاتكم ان شاء الله ولو حتي بالتلميح الي الفكرة.

ولعل الاستاذ جعفر حينما ذكر أن بعض الاسماء ستحتاج الي معاجة خاصة - كان ينوي لتقديم فكرة ما، لتلك المعالجة الخاصة ولكني تعجلت النتائج.

أشكر لكم سعة صدركم وبانتظار ابداعتكم 

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

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

وإذا لا تهمكم مساحة التخزين فاحفظوها منفصلة كما الإدخال وارتاحوا من مشاكل التجميع والتفكيك.

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

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

وكل ما كنت في حاجة اليه هو دالة تختبر ان الاسم مكتمل ام لا  وقد تمت الفائدة بايجادها والحمد لله واشكر لك مرورك. 

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

2 ساعات مضت, أبو عبدالله الحلوانى said:

قبل كل شئ أنت تعلم أني أحب المزاح فلا يكن في صدرك حرج من ردي السابق (دائما أمزح وأورط نفسي ثم أضطر للاعتذار ولكن يعلم الله أني لا أقصد سوي رسم البسمة علي الوجوه هكذا 

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

 

2 ساعات مضت, أبو عبدالله الحلوانى said:

ثم ان اللواحق في الاسماء في الغالب الأعم لن تتجاوز ما هو مشهور كـ ( عبد ) ويلحقها كل مضاف اليها فلن نضطر لاضافة الملحق بها وانما كلمة عبد فقط وينطبق الكلام كذلك علي (أبو - أم - بو ) طبعا مع مراعاة كتابة هذه الكلمات بأشكالها المتوقعة من اضافة الهمزات واهمالها

نعم كلامك صحيح يمكن حصر اغلب اللواحق المحلية والمشهورة بنسبة كبيرة كما تفضلت انت .. لكننا دائماً نتطلع بأن تكون الطريقة أكثر شمولية خصوصا لو فكرت في تسويق برنامجك على نطاق دولي .. في الواقع كنت ارغب بعمل طريقة ما تضيف اللاحقة غير المسجلة مسبقاً الى جدول اللواحق تلقائياً ومن ثم حفظ الاسم الرباعي بالشكل الصحيح في جدول الاسماء وقد قمت بالفعل بعملها لكني وجدت مشكلة ظهور اللاحقة في منتصف الاسم او في بدايته مما سبب لي خلل في استخراج تلك اللاحقة وخلل في تقسيم الاسم الى ربع اجزاء وهذا ما أشرت به إليك في سؤالي السابق "لكن ماذا لو اتى الاسم "بو سالم" في المنتصف اي الاسم الثاني او الثالث؟"

 

والان بعد التفحيص والتمحيص ومناقشة الافكار ووالخ تبين لي ان افضل واسهل حل هو اجبار المستخدم على ادخال الاسم الرباعي موزع على اربع خانات ومن ثم تجميعها وحفظها بالشكل الصحيح .. بذلك نتلافى الاخطاء الوارد حدوثها بشكل نهائي 

 

تحياتي

 

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

45 دقائق مضت, sandanet said:

وما يهمنا دائما هو النتيجة الافضل ..اليس كذلك؟

بلي ولا شك - وجزاكم الله خيرا 

48 دقائق مضت, sandanet said:

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

ولكن كيف سيعرف البرنامج أن هذه لاحقة أم لا هذا هو السؤال؟

أما عن اضافتها بشكل تلقائي فهذا سهل ان شاء الله 

في ١٤‏/١‏/٢٠٢١ at 06:52, محمد أبوعبدالله said:

هل جربت ادخال اسماء مكررة مثل

رجاءا جرب هذا التعديل

 

Test Four Name Sand.mdb

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

3 ساعات مضت, أبو عبدالله الحلوانى said:

لكن كيف سيعرف البرنامج أن هذه لاحقة أم لا هذا هو السؤال؟

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

Function WORDDIF(rngA As String, rngB As String) As String
On Error GoTo Err

' to test the function, press ctrl+G then paste this line of code-->   ?WORDDIF("عبد الرحيم بن سلمان عبد الله بو سالم", "عبد الرحيم بن سلمان عبد الله سالم")
    Dim WordsA As Variant, WordsB As Variant
    Dim ndxA As Long, ndxB As Long, strTemp As String
        
    WordsA = Split(rngA, " ")
    WordsB = Split(rngB, " ")
 
    For ndxB = LBound(WordsB) To UBound(WordsB)
        For ndxA = LBound(WordsA) To UBound(WordsA)
            If StrComp(WordsA(ndxA), WordsB(ndxB), vbTextCompare) = 0 Then
                WordsA(ndxA) = vbNullString
                Exit For
            End If
        Next ndxA
    Next ndxB
    
    For ndxA = LBound(WordsA) To UBound(WordsA)
        If WordsA(ndxA) <> vbNullString Then strTemp = strTemp & WordsA(ndxA) & " "
        'strTemp = strTemp & IIf(WordsA(ndxA) <> vbNullString, WordsA(ndxA), "-") & " "
    Next ndxA
    
    WORDDIF = Trim(strTemp)
Exit Function
Err:
If Err.Number <> 0 Then
MsgBox Err.Number & " - " & Err.Description
End If

End Function

 

قمت باستدعاؤها كالتالي

If Me.txtFullName.Text <> fullName() Then
txt = WORDDIF([Text0], fullName())

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

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

في ١٥‏/١‏/٢٠٢١ at 20:53, sandanet said:

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

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

 

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

16 ساعات مضت, أبو عبدالله الحلوانى said:

أعتقد أنك فكرت في قياس طول الجملة هل هذا صحيح؟! اذا نحتاج الي تقطيع الجملة الي أجزاء وقياس طول كل جزء - سأحاول معك في هذا ان شاء الله عندما أجد الوقت الكافي

فكرة الدالة هي مقارنة الاسم المكتوب مع الاسم الذي يتم تجزئته باستخدام مثال الاستاذ ابو خليل واباجودى .. وكما اسلفت النتيجة كانت جيدة في حال كان الاسم يحتوي على لاحقة في الاسم الرابع غير مدرجة في الجدول .. تقوم الدالة باستخراج تلك اللاحقة فقط .. لكن لو جاءت اللاحقة في الاسم الاول او الثاني او الثالث وهي غير موجودة في الجدول فمثالكم ومثال الاخ اباجودى تظهر الاسم المقطع بشكل غير صحيح وهذا يؤدي الى عدم مقدرة الدالة السابقة من اظهار اللاحقة الصحيحة.

 

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

 

تحياتي

  • Thanks 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