الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يتم البحث في مربع قائمة

مغلقرائج
بدأه SuNtOp في 18 مايو 2006 · 51 رد · 14,220 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني قبل لاتقولون أبحث عن الي براسك وتلاقيه أبي أقولكم بحثت بس ماوصلت للي أبي

>>>>>>>

من خلالي بحثي في المنتدى عن طريقة بحث جميله أبهرني جدا ماقامت به الأخت زهره في تصميم بحث

رائع جدا وهو عند كتابتع حرف معين يقول البحث بإظهار جميع الأسماء التي تبداء بنفس الحرف وفي الأرقام أيضاَ

الرجاء إعلامي بالطرييقه التي يمكنني من خلالها عمل مثل هذا البحث ,, لأني بصراحه ما أبي احمل شي جاهز

المثل يقول (علمني أصيد السمك , ولاتعطيني السمك جاهز) وغداي سمك هههههههه B)

المهم أبي الطريقة الي من خلالها أقدر اقوم بعملية برمجة لمثل هذا النوع من البحث ,, وكيف أقوم بعملها لكل جدول

لأن عندي عدة جداول ,, وكيف أختار القيم الي ابيها تكون موجوده في البحث ؟؟!!

وشكرا لكم ,,,,

#2

اخي السائل

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

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

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

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

بصراحة الاستاذة زهرة والاخوان في المنتدى ما مقصرين ابدا

يااخي اطلب ما بدأ لك وستجد ضالتك

#4

اخي الفاضل

حسب ما فهمت .........

الطريقة هي :-

# ان تنشيء استعلام بالطريقة المعتادة . ثم في شبكة QBE وتحت الحقل ( الاسم ) تدخل المعيار التالي في صف معايير .

Or Is Null "*" & [أدخل الاسم : ] Like

وهنا عندما يدخل المستخدم جزء من الاسم مثلا ( فا ) فان Access يبحث في حقل الاسم ويعيد كل السجلات التي تتضمن ( فا ) سواء لوحدها هكذا فا , او متبوعة بأحرف اخرى مثل , فائز , فاضل , فائزة .... وهكذا

_____.rar

#5

اخي الفاضل

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

الموضوع سهل وبسيط ولن يأخذ منك وقت وتستطيع ان تطبقه على برنامج لديك فقط اتبع الطريقة التالية ثم انظر النتيجة

1. على افتراض ان لديك جدول بإسم EMP او اي اسم في قاعدة بياناتك ( اكيد راح يكون عندك جداول - عديها هذي سهله )

2. نقوم بإنشاء نموذج جديد خالي ليس له مصدر بيانات ( يعني فاضي )

3. نقوم بإنشاء مربعين نص غير منظمين

الاول نسميه txtSearch وسوف يكون معه تسميه نكتب فيها Search ( هذا الاسم مهم للكود ) مربع النص هذا هو الذي سوف نكتب فيه كلمات البحث .

مربع النص الثاني نسميه txtSearch2 ونحذف التسميه الخاصة به ( وطريقة الحذف هو ازالة الكلمة من مربع التسميه ) بمعنى اذا كان مربع التسمية خالى من النص سوف يحذف تلقائيا .

( ملاحظة هامة : نقوم بإخفاء مربع النص الثاني txtSearch2 وكذلك مربع التسميه Search الخاص بمربع النص الاول من النموذج والطريقه سهله وذلك من خلال الضغط عليه بالماوس الايمن و اختيار خصائص مربع النص الثاني txtSearch2 ثم نختار من تبويب الكل مرئي نضعها على لا ونفس الطريقه لمربع التسمية Search

4. ننشأ مربع قائمة ويكون طولها وعرضها مناسبين لحقول البيانات الخاصه بالجدول .

5. سيظهر لنا معالج مربع القائمة وبه اختيارين نختار الاول منها " اريد ان يبحث مربع قائمة عن القيم في جدول او استعلام "

6. نضغط التالي وستظهر نافذة نختار منها الجدول المطلوب مثلا اخترنا الجدول EMP

7. نضغط التالي وستظهر حقول الجدول نختار منها ما نريده ان يكون في القائمة

8. نضغط التالي بعد اختيار الحقول المناسبة

9. ستظهر نافذة الفرز ( نتركها كما هي ) ثم نضغط التالي

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

11. اضغط على التالي وستظهر لك نافذة جديده دعها واضغط التالي

12 . سيعرض لك المعالج اخر نافذة وهي خاصة بتسمية مربع القائمة نسميها مثلا SearchList ثم نضغط انهاء

13. الان نقوم بإنشاء استعلام مبني على الجدول EMP ونضع الحقول المطلوبه في الاستعلام ( التي نريد البحث فيها )

14. بعد الانتهاء من وضع جميع الحقول في الاستعلام نرى في اسفل الاستعلام شبكة ونختار معايير

15 . الان نضع في اول معيار للحقل المراد البحث فيه ( مثلا الاسم ) العبارة التالية

Like "*" & [forms]![FORM]![txtSearch2] & "*"

وشرحها :

اننا نخبر مربع النص الغير منظم txtSearch2 في النموذج ان يظهر لنا مثل الكلمة التي نكتبها في مربع النص

16. ننتقل للحقل الثاني المطلوب البحث فيه مثلا الوظيفه ونضع نفس العبارة السابقة ولكن في خانة المعيار " او "

وهكذا بقية حقول الاستعلام بمعنى ان عبارات الاستعلام السابقة تكون متدرجه حسب الحقول كل في المعيار الخاص به " او " انظر الصوره

18_05_06_11_08_28_1147975708Qza.gif

17. نحقظ الاستعلام بأي اسم مثلا Qza

18. نعرض النموذج في وضع التصميم ونختار مربع القائمة ثم نختار خصائصها ونضع في مصدر الصف بدلا من العبارة الطويله التي ستراها اسم الاستعلام

18_05_06_11_50_21_1147978221Qza3.gif

19. نعرض النموذج في وضع التصميم ونختار مربع النص الاول txtSearch ومن ثم نختار خصائصه وذلك بالضغط بالماوس الايمن على مربع التص ثم خصائص ونختار تبويب الحدث ومنه نختار حدث عند التغيير

20. نضغط على السهم السفلي ونختار " اجراء حدث " انظر الصوره

18_05_06_11_36_58_1147977418Qza_.gif

21 . نجد بجانبه مربع صغير ذو ثلاث نقاط ... نضغط عليه وسننتقل الى محرر الفيجول بيسك على نفس الحدث لمربع النص ونضع هذا الكود

Private Sub txtSearch_Change()
Dim vSearchString As String
vSearchString = Me.txtSearch.Text
Me.txtSearch2.Value = vSearchString
Me.SearchList.Requery
End Sub

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

22. نقوم بالحفظ النهائي ونقوم بعرض النتيجه ( ما شاء الله تبارك الله ) ايه الحلاوه دي يا عم

شرح الكود

1. يتم التغيير لمربع القائمة من خلال حدث التغيير لمربع النص الاول txtSearch الذي نكتب فيه كلمات البحث

2. نقوم بالتصريح لعبارة البحث من خلال الصيغة Dim وعبارة البحث هي vSearchString

3. نجعل عبارة البحث vSearchString تساوي اي قيمة في مربع النص الاول Me.txtSearch.Text وجود الكلمة Me تعني الحالية في النموذج و Text هي النص ( لان النص يقبل حروف وارقام )

4. الان نجعل القيمة Value الخاصة بمربع النص الثاني ( تذكر اننا قمنا بإخفاءه في اول الشرح ) مساوية لعبارة البحث vSearchString

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

5. اخيرا نقوم بتحديث مربع القائمة الحالية مباشرة من خلال Me.SearchList.Requery

ارأيت اخي الكريم ان الموضوع سهل ولا يوجد به اي صعوبه وجميع هذه الخطوات لا تأخذ منك سوى دقائق

وهذا هو المثال العملي لمشاهدة النتيجه

Try_Now.rar

اختكم

زهره

2
#6

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

الأخت زهرة

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

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

ولك مني التحية والعرفان

#7

اخي الفاضل

نعم يمكن تحقيق ذلك على النموذج الفرعي ولكن هذه المره لابد من اختيار حقل محدد يتم البحث عنه سواء الاسم او الرقم او اي حقل تحدد في الكود الموجود في حدث عند التغيير لمربع النص الخاص بالبحث طبعا انا هنا اخترت الاسم Name بإمكانك تغييره واختيار الرقم مثلا Number او الوظيفه Job او رقم الهاتف Phone

Private Sub txtSearch_Change()
Dim vSearchString As String
vSearchString = "*" & txtSearch.Text & "*"
If Not (txtSearch.Text = "") Then
Me.SubForm.Form.Filter = "Name  like '" & vSearchString & "'"
Me.SubForm.Form.FilterOn = True
Else: Me.SubForm.Form.FilterOn = False
End If
End Sub

ملاحظة : يمكنك انشاء مربعلت نص غير منظمه او نسخ مربع نص البحث اربع مرات على حسب الحقول التي تريد البحث فيها وتضعها تحت بعض فمثلا الاول جاهز وهو للاسم واسمه في الكود txtSearch والثاني للرقم واسمه مثلا txtSearchR والثالث للوظيفه واسمه txtSearchJ والرابع للهاتف txtSearchP

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

Private Sub txtSearchR_Change()
Dim vSearchString As String
vSearchString = "*" & txtSearchR.Text & "*"
If Not (txtSearchR.Text = "") Then
Me.SubForm.Form.Filter = "Number  like '" & vSearchString & "'"
Me.SubForm.Form.FilterOn = True
Else: Me.SubForm.Form.FilterOn = False
End If
End Sub

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

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

طبق هذا الشرح واعطيني خبر هل نجح معك ام لا

وهذا مثال تطبيقي

SearchInSubForm2006_up.rar

اختكم

زهره

تم تعديل هذه المشاركة بواسطة zahrah في 19 مايو 2006 في 20:36

1
#8

شرح مستفيض اخت وكذلك العنوان TRY NOW

حبذا لو تقومين بتقديم بعض الدروس المتواصلة بهذه الطريقة من الشرح وهي تقديم عمل ما والشرح عليه تحت هذا العنوان (TRY NOW)

مشكورة جدا

#9

بارك الله فيك اخي الكريم

اذا رغبت في بعض الشروحات فإليك الرابط

/index.php?showtopic=60392

اختكم

زهره

1
#10

أستاذتنا الفاضلة واختنا العزيزة / زهرة المدائن

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

أتمنى أن يكون سؤالي واضح

وبارك الله فيك وفي كل العاملين على هذا المنتدى الرائع

-waf

محبـــة الرســـول

96852319.gif
#11

اختي الفاضله اكرام

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

بارك الله فيك وجزاك الله خيرا

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

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

امل التوضيح

اختك

زهره

#12

بارك الله فيكي اختي على سرعة الرد

ما كنت أقصده بارك الله فيك هو انه من شاشة النموذج نفسه التي أدخل بها البيانات عندما أريد البحث عن سجل معين في هذا النموذج بدلا من الضغط على ctul+f ليظهر بيانات الموظف الخاصة به على نموذج الادخال أقوم بعمل زر بحث مجرد الضغط عليه يظهر لي شاشة بحث بحيث مجرد ما أكتب فيه مثلا مح** يظهر كل السجلات ومن ثم اختار السجل المراد وعند الضغط عليه يعود بي لشاشة ادخال البيانات وعندها تظهر كافة بيانات هذا الموظف كما أدخلتها في شاشة الادخال .

وذلك لكي اتفادي مشكلة ctrl+F والتي يجب فيها أن أقوم بعملية ضبط لنوع البحث مثلا في كافة السجلات ورفع اشارة الصح الموجودة أمام البحث في الحقل الحالي .

أتمنى أن تكون الصورة قد اتضحت

واعتذر عن سوء توضيحي للموضوع

-waf

محبـــة الرســـول

96852319.gif
#13

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

بارك الله فيك يا أخت زهرة على هذا الشرح وجعله الله في ميزان حسانتك

هاذا هو المطلوب بسؤالي السابق

مع جزيل الشكر والتقدير

#14

يعطيكم الف عافيه جميعا على المساعده وخصوصا المبدع زهره

وأعتذر عن التأخير لكن ظروف خارجه عن الإراده ,,

بإذن الله سوف أبدء بالتطبيق ولي عودة مره آخرى ,,

وجزاكم الله الف خير :)

#15

بسم الله الرحمن الرحيم

أختى الغالية ،، أستاذتي الفاضلة

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

لقد قمت بالاضافة على هذا الملف لكي أستفسر عن بعض الأشياء

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

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

وكذلك نفس الشيء عند تحديد السجل والضغط على كلمة موافق

أتمنى أن أكون قد وضحت المطوب هذه المرة

اضافة لذلك أود أن استسفر عن كيفية عمل أحد أزرار لوحة المفاتيح بحيث إذا نقرت مثلاً على اشارة (+) داخل شاشة ادخال البيانات يقوم بفتح شاشة البحث تلقائيًا

وأتمنى أن تفيديني في اجابتك عن هذا التساؤل

بارك الله فيك وفي أولادك وبناتك

try_now.rar

محبـــة الرســـول

96852319.gif
#16

اختي الفاضلة اكرام

ملفك بعد التعديل

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

try_now_up2.rar

اختك

زهره

تم تعديل هذه المشاركة بواسطة zahrah في 18 يناير 2007 في 11:40

#17

الأستاذة الغالية/ زهرة

الأخ العزيز / ياسر اليوسف

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

الحمد لله فهمت الموضوع وقد وفقني الله ونجحت في عمله في البرنامج الخاص بي :D

-waf

محبـــة الرســـول

96852319.gif
#18

استاذتنا الاخت زهرة

تحياتي لك ولمجهوداتك الرائعة في مساعدة الاخرين في هذا العلم الجميل

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

_____.rar

#19

أخي الغالي

komaja

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

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

فقط لكن باقي الاجرآت سليمة 100/100 فأنت كتبت Txtsearch2 وسميت مربع النص

Txtsearch بدون وضع 2

مرفق لك مثالك بعد اجراء التعديلات علية

_____.rar

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#20

يا جماعة هل نستطيع جعل مربع السرد listbox يظهر عند طلبه من استعلام ومن خلاله يكون البحث اي أننا هنا لا نريد الكتابة لأن المعلومات ستظهر حسب البحث من مربع السرد الذي يحتوي سطور جاهزة أو سجلات جاهزة

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

مثال : مربع السرد يحتوي على 3 سجلات 1. رحلة الحج 2. رحلة عمرة الربيع 3. رحلة عمرة الصيف

ما أريده هو أنني عند ما أفتح استعلام لطلب كشف معين أريده أن يكون حسب الـ 3 العناصر السابقة مثلاً إذا طلبت حسب "رحلة عمرة الصيف"///// ففي الحالة العادية يجب كتابة الجملة كاملة أما إن استطعتم مساعدتي بكيفية طلب هذه الجملة من خلال مربع السرد فسيوفر على موظفي الحملة عملية إدخال البيانات كاملة للبحث

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

#21

اخي الفاضل غسان

هل من الممكن وضع مثال بسيط لما تريد لأنني لم استوعب ماذا تريده بالضبط

#22

مرفق المثال البسيط

حيث إنني أريد عندما أفتح الاستعلام الموجود في الملف أن أتجنب إدخال البيانات يدوياً

بمعني عندما تأتي شاشة الاستعلام فيطلب من (أدخل اسم الرحلة)

حالياً أقوم بادخال اسم الرحلة كاملاً حسب الخيارات المتاحة في الحقل (اسم الحملة) في الجدول (البيانات الرئيسة)

ما أريده هو عندما تأتي شاشة الاستعلام فبدل إدخال المعلومات يدوياً ، أريد نفس حقل (اسم الحملة) كـ LISTBOX مما يوفر علي عدم الخطأ الإملائي

عند كتابة اسم الحملة

db1.zip

#24

اخي الفاضل

الاستاذ / محمد فؤاد

شكرا على سرعة ردك

جربتها ووضع الكود نفس ما اشرت اليه ولكن للاسف لم تفلح ايضا

اخوكم

هشام

#25

ارجوا المعذره اخواني

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

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

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

مع اعتذاري للمرة الثانية

test.rar

هذا الموضوع مغلق.

مواضيع مشابهة