الأخوة الكرام .. تحية طيبة وبعد ..
عندي قاعدة بيانات تحوي على الاسم والرقم والعنوان .. السؤال هو كيف أعمل أستعلام على شكل نموذج .. بحيث أختار صيغة البحث بالاسم أو الرقم أو العنوان أو معاً .. وشكراً للجميع
الأخوة الكرام .. تحية طيبة وبعد ..
عندي قاعدة بيانات تحوي على الاسم والرقم والعنوان .. السؤال هو كيف أعمل أستعلام على شكل نموذج .. بحيث أختار صيغة البحث بالاسم أو الرقم أو العنوان أو معاً .. وشكراً للجميع
احد اهداف Microsoft Access هي ان يحتوي كل نموذج على نظام بحث مبني بداخله يسمح لك بالبحث في البيانات بصورة الية
استخدام نظام البحث سهل للغاية ، فهناك طريقتين ، الاولى استخدام الامر بحث نفسه بالضغط على المكان الذي ترغب بالبحث فيه و من ثم الضغط على زر الناظر في قائمة الادوات او الضغط على الازرار Ctrl + f
الطريقة الثانية و هي متقدمة اكثر و هي استخدام ازرار الفرز الموجودة في قائمة الادوات ايضا ، حيث انه يمكنك بواسطتها اجراء بحث متقدم و مترابط لعدة حقول معا و استخدام رمز النجمة مع الاحرف للبحث عن جزء من اسم و ما الى ذلك
اي ان البحث و فرز البيانات و التحرك بين البيانات و حفظها و حمايتها و فحصها و كل ما هو متعلق بها موجود بصورة ضمنية ضمن النموذج نفسه
السلام عليكم ورحمة الله وبركاته
هذا مثال يوضح ذلك يعمل على الاكسيس 2000
http://mypage.ayna.com/mesfer823/srsh.zip
وتقبل تحياتي
الأخ المسافر لم أجد المثال ، وأرجو أن تنتبه لهذه المشكلة وهي عدم وجود امثلة الاجابات السابقة ، حبذا لو تم تخزين الأمثلة بنفس الموقع .
وشكراً لك .
الأخ فتىالوادي
الأمر أعتقد أنه يحتاج إلى كتابة معايير في الإستعلام ومن ثم ربط نموذج البحث بالإستعلام .
تبدء بفتح إستعلام في عرض التصميم وتختار الجدول المطلوب ومن ثم تكتب في المعايير بالنسبة للخانات التي تريدها التالي :
مثلاً رقم المعاملة تكتب :
like chr(42)&[]&chr(42)
القوسين الفارغه يتكب بها [رقم المعامله]
لاحظ أننا كتبنا بين قوسين رقم المعاملةدون كتابةنقطتين على الهاء الأخيرة .
وتستحدم نفس الأسلوب مع الخانات التي تريدها .
فتى الوادي
للبحث عدة طرق :
1- ضع العبارة التالية
[أدخل الاسم أو الرقم أو العنوان]
في حقل الاسم في معيار وفي حقل الرقم في معيار أو وفي حقل العنوان في معيار أو أسفل من معيار حقل الرقم ، وعند تشغيل الاستعلام تظهر لك رسالة واحد فقط تطلب منك إدخال إما الاسم أو الرقم أو العنوان ، لايصح إدخال بيانات حقلين في الرسالة .
2- طريقة أخرى : ضع على النموذج ثلاث قوائم منسدلة يكون مصدر الأولى حقل الاسم في الجدول والثانية حقل الرقم والثالثة العنوان واسم الأولى قائمة_الاسم والثانية قائمة_الرقم والثالثة قائمة_العنوان ثم في الوحدة النمطية للنموذج ضع التالي :
Private Sub تفصيل_DblClick(Cancel As Integer)
Me.FilterOn = False
End Sub
Private Sub قائمة_الاسم_AfterUpdate()
If Me.FilterOn = False Then
Me.Filter = "[الاسم]=" & "'" & Forms![اسم النموذج]![قائمة_الاسم] & "'"
Me.FilterOn = True
Else
Me.Filter = Me.Filter & "AND [الاسم]=" & "'" & Forms![اسم النموذج]![قائمة_الاسم] & "'"
Me.FilterOn = True
End If
هل_يوجد_سجلات
End Sub
Private Sub قائمة_الرقم_AfterUpdate()
If Me.FilterOn = False Then
Me.Filter = "[الرقم]=" & "'" & Forms![اسم النموذج]![قائمة_الرقم] & "'"
Me.FilterOn = True
Else
Me.Filter = Me.Filter & "AND [الرقم]=" & "'" & Forms![اسم النموذج]![قائمة_الرقم] & "'"
Me.FilterOn = True
End If
هل_يوجد_سجلات
End Sub
Private Sub قائمة_العنوان_AfterUpdate()
If Me.FilterOn = False Then
Me.Filter = "[العنوان]=" & "'" & Forms![اسم النموذج]![قائمة_العنوان] & "'"
Me.FilterOn = True
Else
Me.Filter = Me.Filter & "AND [العنوان]=" & "'" & Forms![اسم النموذج]![قائمة_العنوان] & "'"
Me.FilterOn = True
End If
هل_يوجد_سجلات
End Sub
Private Sub هل_يوجد_سجلات()
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "لايوجد سجلات حسب اختياراتك ."
Me.FilterOn = False
قائمة_الاسم = ""
قائمة_العنوان = ""
قائمة_الرقم = ""
End If
End Sub
لاحظ :
- الكود كله مبني على طريقة الفلترة .
- غير اسم النموذج إلى اسم النموذج عندك .
- وضعت حدث عند النقر على مقطع تفصيل للنموذج لإلغاء الفلتر .
هناك طريقة بالاستعلام ، وطريقة أخرى لجعل البحث لا يساوى كامل بيانات القائمة وإنما تكون البيانات الموجودة في القائمة بداية البيانات -بداية الحقل- المطلوبة أو أنها مضمنه في البيانات المطلوبة -أي جزء من الحقل- أو تنتهي بالبيانات المطلوبة -نهاية الحقل-.
فإن لم تعجبك الطريقة السابقة وتريد توضيح للطريقتين الأخريتين فاكتب طلبك مع أملي أن تجرب هذه الطريقة أولا .
ولك تحياتي
هذا الموضوع مغلق.