السلام عليكم ورحمة الله وبركاته . .
.. || نبذة سريعة || ..
البرنامج عبارة عن إدخال وتخزين بيانات عن طريق داتابيز أكسس ..
المشكلة الأولى:
أردت أن لا أضيف مكرر في جدول وهو خانة الأسم ..
اسم Ros في قاعدة البيانات fname ..
عملت لوب يبحث لي داخل الجدول المحدد ويقارنه بالمدخل الجديد إذا كان موجود يظهر لي رسالة انّه موجود ويمسح الخانة لإدخال اسم آخر..
عملت هاي الفكرة .. وأدّت الغرض ونجاح العملية .. لكنّ المشكلة تقع في الآتي ..
لو كانت الداتابيز Empty ما فيها أي ريكورد .. ما راح يشتغل البرنامج وراح يوقف .. بسبب أنّ أول ما يضغط زر اضافة راح يدخل في اللوب وإذا كانت الداتا فاضية راح يكون الخلل فيه !!
ما هو الحل لتفادي المشكلة !
( نريد نضيف شغلة أنّ أول ما يضغط زر إضافة يدخل الداتابيز إذا كانت فاضية ما يدخل اللوب وتتم الإضافة .. وهذي راح تكون أوّل عملية فقط .. ) ..
الكود قبل الاضافة اللي يسوي مقارنة بين المدخل الجديد وريكورد الداتا هو:
With Data1.Recordset
.MoveFirst
Do Until .EOF
If !fname = Text1.Text Then
MsgBox "موجوووود!!", vbMsgBoxRight + vbMsgBoxRtlReading, "مكررر!"
Text1 = ""
Exit Sub
Else
.MoveNext
End If
Loop
End With
اقتباسالمشكلة الثانية :
لو أضفت خاصية البحث داخل برنامجي وعملت طريقة البحث بالطريقة السابقة ستحدث بعض المشاكل وهي عدم القدرة البحث أكثر من مرّة .. ومشكلة الثانية حالة التطابق التام .. !!
../ البحث بواسطة اسم اسمة في الداتا (( fname )) ..
# نراعي في حالة البحث:
ـ تجاهل حالة الأحرف ( كبتل / سمول لتر )..
ـ يبحث عن جزء من الكلمة أو كلمة على الأقل .. وليس حالة تطابق تام !
ـ عرض النتائج + معلومة من كولوم آخر اسمه في الداتا (( trans )).
مثال:
لو عندي ركوردز مسجل في ( fname ) بـ :
Mohammed A.rahman
Mohammed Ahmed
mohammed Yousif
Mohammed Adel
راح تكون نتيجة البحث كل الأسماء ..
Mohammed A.rahman
Mohammed Ahmed
mohammed Yousif
Mohammed Adel
وما هي أفضل طريقة لعرض النتائج .. هل DBGrid?
:rolleyes: أتمنّى أن أجد الأفكار والحل بين يديكم .. وبخبراتكم نستفيد ..
مع التحية،
saw!



