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

المساعدة فى بحث متعدد داخل النموذج


haitham elareny

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

في 21‏/6‏/2022 at 23:35, haitham elareny said:

اريد المساعدة للبحث داخل الحقول 

اخي العزيز سوف اشرح لك طريقتين للبحث المتعدد

الاولى البحث في مربع القائمة وهو الموجود في مرفقك مع اني لا احبذ التعامل مع القوائم وافضل التعامل مع النماذج الفرعية في مثل هذه الحالات ولكن هذا امر اخر

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

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

نقوم باضافة حقل محسوب في الاستعلام نضع فيه الحقول التي سنستخدم معها معيار like

هذا الحقل نجمع فيه حقل الاسم والجنس والمدينة وممكن اضافة اي حقول ماعدا حقل العمر وسوف نبين لماذا نستثنيه المهم قيمة هذا الحقل الذي جمعنا فيه الحقول تكون ⬇️

Expr1: [stname] & " " & [address] & " " & [gender]

وفي خانة المعيار نضع التعبير التالي

Like "*" & [Forms]![frmsearch]![txtsearchname] & "*"

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

محمد ثم مسافة ثم البحيرة وهكذا

الان حقل العمر انت ترغب البحث من عمر الى عمر مثلا من 16 الى 20 وهكذا وبالتالي لا نستطيع استخدام like ولكن نستخدم Between & and

لذا في معيار حقل العمر في الاستعلام نضع التعبير التالي

Between Nz([Forms]![frmsearch]![t2];0) And Nz([Forms]![frmsearch]![t4];99)

t2 هو حقل من تاريخ 
t4 هو حقل الى تاريخ
t2 & t4 هي حقول في النموذج

استخدمنا دالة nz لتعوض في حقل من تاريخ عن القيمة null بالصفر وكذلك استخدمنا مع الحقل الى لتعطي القيمة 99

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

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

تحياتي

 

test22.gif

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

2 ساعات مضت, Eng.Qassim said:

اضافة لما تفضل به مبرمج سابق

اضافة الى listbox  عملت لك نموذج بحث متعدد

عمل ممتاز استاذ قاسم نفس الفكرة ولكن لم اضع شرط عند كل معيار

من وجهة نظري علامة النجمة ودالة nz تغني عن الشرط

ولكن لكل شيخ طريقته استاذي قاسم

ملاحظة صغيرة في طريقتك جرب تكتب الجنس Male ستجد انه سرد الذكور والاناث

طريقتي ⬇️

Dim strWhere As String
strWhere = ""
strWhere = strWhere & " [stname] like '*" & txtsearchname & "*'"
strWhere = strWhere & " and " & " [gender] like '" & Nz(txtsearchgender, "*") & "'"
strWhere = strWhere & " and " & " [address] like '*" & txtsearchaddress & "*'"
strWhere = strWhere & " and " & "[age]  >=  nz([tx2],1)"
strWhere = strWhere & " and " & "[age] <=  nz([tx4],99)"
Me.frmstudent.Form.Filter = strWhere
Me.frmstudent.Form.FilterOn = True

هنا الفلترة في النموذج الفرعي

ويبقى عملك الاجمل في جميع الاحوال

تحياتي وتقديري

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

12 دقائق مضت, Eng.Qassim said:

ههههه اصبحنا شيوخ ...

ربي يعطيكم الصحة والعافية (شيخي العزيز)

ههههههه

في اللغة العربية تطلق كلمة شيخ على ثلاث

  • الكبير في السن قال الله تعالى "قَالَتَا لَا نَسْقِي حَتَّىٰ يُصْدِرَ الرِّعَاءُ ۖ وَأَبُونَا شَيْخٌ كَبِيرٌ"
  • الوجية في قومة ذو الرئاسة او الجاه
  • عالم الدين

على كل حال لو لم تتوفر في رقم 2 و3 يبقى رقم واحد

تحياتي

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

تحياتى لكم اساتذتنا الكرام ....لو امكن ان يكون البحث فى حالة التغيير يكون اوقع وافضل ....وكيف نجعله يفرق بين male &female ففى حالة كتابة male يقوم بعرض الكل ....النقطه الاخيرة فى قاعدة البيانات هذه اذا لم يكن الحقل يحتوى على بيانات لا يقوم بعرض السجل فى الlistbox فكيف يمكن التغلب على ذلك يعنى لو حقل العنوان فارغ لا يقوم بعرض السجل الخاص به فى مربع القائمة ....اخيرا شكرا لاهتمامكم

multisearch3.accdb

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

22 دقائق مضت, haitham elareny said:

وكيف نجعله يفرق بين male &female ففى حالة كتابة male يقوم بعرض الكل

" [gender] like '" & Nz(txtsearchgender, "*") & "'"

هنا ☝️ لم نستخدم معيار النجمة مع دالة like وبالتالي لو كتبنا male سوف نحصل على اجابه صحيحة وكذلك لل female

واستخدمنا النجمة فقط في كمعيار لدالة nz حتى يمكن تجاوز القيمة الخالية لحق الجنس

22 دقائق مضت, haitham elareny said:

لو امكن ان يكون البحث فى حالة التغيير يكون اوقع وافضل

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

22 دقائق مضت, haitham elareny said:

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

ربما لم افهم ولكن نستخدم nz ويمكن استخدامها في مصدر القائمة

بالتوفيق

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information