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

البحث في اكثر من حقل بدون فلتره

مغلق
بدأه العطار في 16 أكتوبر 2001 · 16 رد · 1,202 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

الفكرة هي كيف يتم البحث في اكثر من حقل الخطوات هي :

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

2. إنشاء Models وضع فيه هذين الإجراءين

Public Sub AddToWhere(FieldValue As Variant, FieldName As String, MyCriteria As String, ArgCount As Integer)



If FieldValue <> "" Then

  If ArgCount > 0 Then

    MyCriteria = MyCriteria & "and"

  End If

  MyCriteria = (MyCriteria & FieldName & " like " & Chr(39) & FieldValue & Chr(42) & Chr(39))

  ArgCount = ArgCount + 1

 End If

End Sub



Public Function search()

 Dim MySQL As String

 Dim MyCriteria As String, MyRecordSource As String

 Dim ArgCount As Integer





 ArgCount = 0

 MySQL = "select * from unit WHERE "

 MyCriteria = ""

  

بالاسفل هي الحقول التي ستقوم بالبحث فيها .



 AddToWhere Forms![search]![first_name], "[unit]![f_name] ", MyCriteria, ArgCount

 AddToWhere Forms![search]![second_name], "[unit]![s_name] ", MyCriteria, ArgCount

 AddToWhere Forms![search]![third_name], "[unit]![t_name] ", MyCriteria, ArgCount

 AddToWhere Forms![search]![fam_name1], "[unit]![fam_name] ", MyCriteria, ArgCount

 AddToWhere Forms![search]![age1], "[unit]![age] ", MyCriteria, ArgCount





 MyRecordSource = MySQL & MyCriteria

 Forms![search]![form1].Form.RecordSource = MyRecordSource



End Function

. إنشاء نموذج جديد وسمه form1 واجعل مصدر السجل تساوي العبارة التالية

SELECT * FROM unit WHERE false;

( ; هي بالصحيح مقلوبه آمل مراعاة ذلك )

اجعل طريقة العرض الافتراضية (صفحة بيانات ) Datasheet

قم بإنزال جميع عناصر هذا النموذج داخله بدون ترتيب فهو غير مهم .

3. نموذج search أوجد زر حدث واجعله ينادي الإجراء search

طبعا ليس هذا كل شئ فهناك نقاط كثيره لتطويره وذلك من خلال المشاكل التي واجهتني ومنها .

أ. يجب أن تتأكد من أن العناصر لا تساوي Null أي أنها غير فارغة .

ب. يجب أن تقوم بإيجاد زر حدث لمسح الحقول وتفريغها .

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

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

أخوكم العطار

#2

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

اخوكم العطار

#3

أخي العطار لماذا لاتضع القاعدة التي لديك أو على الأقل الكود المذكور أعلاه في ملف على الانترنت ومن ثم تضع رابط له هنا ، ليتمكن من يرغب في تحمليه .

وبالتوفيق .

#4

الى الاخ العزيز الغريب وبقيه الاعضاء السلام عليكم ورحمة الله وبركاته

البرنامج موجود على الوصله

http://mypage.ayna.com/a_atawi/Access/

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

احلى شئ في عمليه البحث هذه انك كل ما تزيد في القيم التي تحددها كل ما قلت النتائج الى ان تصل الى المطلوب .

ولاحظ ايضا ان حقول البحث مفتوحه حدد مثل ما تبغى حسب حاجتك .

اخوكم ا لعطار

#5

مشكور أخوي

#6

الاخ العطار

بارك الله فيك على هذه الفكرة

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

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

إنشاء نموذج جديد وسمه form1 واجعل مصدر السجل تساوي العبارة التالية

SELECT * FROM unit WHERE false;

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

وشكراً

#7

الى الاخت عربية

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

1. لانه وضع لفتره طويله .

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

عموما سارجع البرنامج على الموقع ويمكنك الآن انزاله ومتابعته وبعدها اذا كان عندك سؤال فانا جاهز ان شاء الله للاجابة

البرنامج على الوصله

http://mypage.ayna.com/a_atawi/Access/search.zip

اخوكم العطار

#8

الأخ العطار

مشاركة ممتازة وبارك الله فيك ولكن ماذا لو كان حقل الاسم غير مقسم إلى حقول يعني الاسم كله حقل واحد .

أشرف خليل

#9

هلا ashraf

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

1. اذا كنت تعرف الاسم الاول فقط عندها اكتب الاسم الاول فقط بدون تكملة الاسم مثلا اكتب احمد عندها ستظهر جميع الاسماء اللتي تبداء باسم احمد بغض النظر عن اسم العائله .

2. اذا كان العكس اي تعرف اسم العائلة ولكن لا تعرف الاسم الاول عندها اكتب نجمة ( * ) ثم فراغ بعدين اسم العائله ستظهر جميع الاسماء التي لها هذا الاسم بغض النظر عن الاسم الاول .

3. اذا اردت ان تقلل النتائج وانت تعرف الاسم الاول واسم العائله فقط عندها اكتب الاسم الاول ثم فراغ ثم نجمة ثم اسم العائلة .

هذا ينظبق على اي حقل

اخوكم العطار

#10

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

أخي/ العطار

لدي سؤال،

أفترض أن حقل الاسم قائمة منبثقة ، فكيف سيتم البحث؟

ولك خالص التحية.

ibnmusqat.gif
#11

الى الاخ ابن مسقط

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

كذلك ضمنته جواب للسؤال (البحث بالنقر المزدوج على اسم الموظف )

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

http://mypage.ayna.com/a_atawi/Access/search2.zip

اذا كان هناك اي سؤال او اقتراح آمل تقديمه لتعم الفائده للجميع

اخوكم العطار

#12

أخي/ العطار

عذراً لأني لم أتمكن من مراجعة المثال إلا في هذه الأيام ،

وهو ليس كما كنت أنشده في سؤالي السابق.

ولكن دعني أشرح ما أقصده بهذا المثال: لدي قاعدة بيانات تتكون من الأتي:

جدول: الموظفين

يتكون من الحقول التالية: رقم الموظف (ترقيم تلقائي) ، الاسم (نص)، تاريخ التعيين (تاريخ) ، رقم مقر العمل (رقم) ، ملاحظات(مذكرة).

يرتبط مع جدول مقر العمل

الذي يتكون من : رقم مقر العمل (ترقيم تلقائي) ، اسم المقر (نص).

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

السؤال:

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

والله الموفق ،

ولك خالص تحياتي.

ibnmusqat.gif
#13

الأخ/ العطار

هل السؤال غير واضح ؟

هل من مجيب ؟

ibnmusqat.gif
#14

الأخ ابن مسقط

أرسل إلي الملف .

ولك تحياتي

#15

أستاذي/ أبو حمود

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

في الحقيقة عندما أرى أسمك أستبشر خيراً

وأقول أن الفرج قد جاء. :D

لقد أرسلت الملف إلى بريدك ،

وهو عبارة عن قاعدة بيانات خاصة بمتابعة المراسلات.

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

فمثلاً عندما أختار "مكتب الوزير" ورمزه رقم (1) فأن نتيجة البحث تشتمل الجهات الأخرى ذات الرموز 11 ، 12 ، 13 ، 14 ، 15 ، 16 ، 17 ، 18 ، 19 ، 21 ، 31

المطلوب : أن تكون نتيجة البحث مقتصرة على بيانات الجهة المراد البحث عنها.

كما أنه الأفضل أن يظهر أسم الجهة في النموذج الفرعي وليس رمزها.

فهل يمكن ذلك ؟

ولك الأجر عند الله تعالى.

مع خالص تحياتي. :)

ibnmusqat.gif
#16

سأراجع الملف وأعطيك النتيجة بإذن الله .

ولك تحيتي

#17

الأخ ابن مسقط

أرسلت الملف على بريدك .

ولك تحياتي

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…