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

كيف أجعل البرنامج يبحث بالكلمة

بدأه alnoor_09 في 14 مايو 2008 · 27 رد · 3,422 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أخواني الكرام لدي هذا البرنامج للرسائل

ما أريده هو كيف أجعل هذا البرنامج يبحث في subject-letter بالكلمة دون الحاجة الى كتابة العنوان كاملاً.

مثلاً يبحث بكلمة places

letter_up.rar

#2

أخواني الكرام ألا يوجد حل لهذه المشكلة؟؟

#3

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

بإذن اللـه هـذا المثـال يسـاعـدك ،،،

___________.rar

#4

أشكرك وبارك الله فيك.

بس لماذا هذا الكود يظهر بلغة غير مفهومة؟؟

Case Is = "ÈÍË ÈÇáÑÞã"

#5

تفضل هذا المثال لطريقة البحث بجزء من الكلمة

وهذا هو الكود المستخدم لاداء هذه العملية

Private Sub Text8_Change()
Dim ct As String * 1
  Dim ss As String * 1

  'On Error Resume Next

  ct = """"
  ss = "*"
  Me.Text8.Tag = Me.Text8.Text
  Me.RecordSource = "SELECT * FROM tbl1 WHERE Tbl1.PR LIKE " & ct & ss & (Nz(Me.Text8.Tag)) & ss & ct & ""

  If Me.RecordsetClone.RecordCount = 0 Then
	Me.Detail.Visible = False
	Me.RecordSource = ""
  Else
	Me.Detail.Visible = True
  End If

  Me.Text8 = Me.Text8.Tag
  Me.Text8.SetFocus
  SendKeys "{f2}"
  Me.Refresh
End Sub

Search_by_name.rar

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#6

أشكرك أخي وبارك الله فيك

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

ما أريدة فى letter subject أن أستطيع أن أبحث أو يظهر لى العناوين التي تحتوي على نفس ال subject

مثل كلمة places .

letter_up.rar

#7

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

تحية طيبة الى كافة الاعضاء المشاركين ولا سيما المشرف العزيز استاذنا / محمد بيه..

تحية الى الأخت الفاضلة النور ،،

على الرغم من وجود ملاحظات على طريقة البحث التي تريدنها من حيث انها غير عملية (رأي الخاص).. إلا من الممكن تجربة الكود التالي في زر search

في حدث عند النقر :

Private Sub CmdSearch_Click()
On Error Resume Next
Dim SreCH As String
Dim SreCH2 As String

SreCH = "*" & txtSearchSubject & "*"
SreCH2 = "*" & txtSearchREF & "*"
If Not (txtSearchSubject = "") Then
Me.Filter = "Letter_Subject  like '" & SreCH & "'"
Me.FilterOn = True
ElseIf Not (txtSearchREF = "") Then
Me.Filter = "Letter_Ref like '" & SreCH2 & "'"
Me.FilterOn = True
Else
Me.FilterOn = False
End If

End Sub

الصورة توضح النتيجة :

post-156430-1212236993.png

ترجمة ع السريع :

SreCH = متغير نصي الاول

SreCH2 = متغير النصي الثاني

txtSearchSubject =اسم عنصر غير منظم على النموذج الخاص بـ ( subject).

txtSearchREF = اسم عنصر غير منظم على النموذج الخاص بـ (REF)

Letter_Subject = اسم الحقل (Letter_Subject ) الذي يحتوي المعلومات وليس اسم عنصر تحكمه .. انتبهي ..

Letter_Ref= اسم الحقل لـ (Letter_Ref) الذي يحتوي المعلومات وليس اسم عنصر تحكمه .. انتبهي

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

مشكاة

Mis_letter_up1.rar

#8

أشكرك أخي وبارك الله فيك.

#9

أخي الكريم أتمنى أن يكون صدرك واسعاً لسؤالي

لقد حاولت في الملف الذي أرفقته بعد التعديل أن أضيف بحث ب To-From و Date

بحيث أعمل SreCH4 و SreCH3

بحيث أجعله يبحث ايضا Date و TO-From مثل الملف الذي أرفقتة ولكن لم يعمل البرنامج.

أرجو المساعدة.

#10

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

بالنسبة الى سؤالك بطلب اضافة عنصر ثالث ورابع للبحث على الرغم من اني أشرت سابقا الى :-

اقتباس
على الرغم من وجود ملاحظات على طريقة البحث التي تريدها من حيث انها غير عملية (رأي الخاص)..

انظر الى الكود التالي:-

Private Sub CmdSearch_Click()
On Error Resume Next
Dim SreCH As String
Dim SreCH2 As String
Dim SreCH3 As String
Dim SreCH4 As String

SreCH = "*" & txtSearchSubject & "*"
SreCH2 = "*" & txtSearchREF & "*"
SreCH3 = "*" & txtSearchToFrom & "*"
SreCH4 = "*" & TextDate1 & "*"

If Not (txtSearchSubject = "") Then
Me.Filter = "Letter_Subject  like '" & SreCH & "'"
Me.FilterOn = True
ElseIf Not (txtSearchREF = "") Then
Me.Filter = "Letter_Ref like '" & SreCH2 & "'"
Me.FilterOn = True
ElseIf Not (txtSearchToFrom = "") Then
Me.Filter = "From_To like '" & SreCH3 & "'"
Me.FilterOn = True
ElseIf Not (TextDate1 = "") Then
Me.Filter = "Date_Letter like '" & SreCH4 & "'"
Me.FilterOn = True
Else
Me.FilterOn = False
End If

End Sub

الفكرة تقوم بتعريف متغيران هما

Dim SreCH3 As String

Dim SreCH4 As String

وتقوم بإضافة elseif لكل حقل مع ملحقاتها وتنتهي المشكلة ....

ومرفق التعديل الثاني

مشكاة

Mis_letter_up2.rar

#11

أشكرك أخي الكريم

هل لك أن توضح لي ما هو المفترض أن يكون لكي تكون طريقتي عمليه وسلسة في عملية البحث؟

أشكرك على تعاونك.

#12

تحية طيبة يا أخ نور ..

الجزء الأول :- الحمد لله ان سؤالك تم الاجابة عليه ..

الجزء الثاني :

اقتباس
هل لك أن توضح لي ما هو المفترض أن يكون لكي تكون طريقتي عمليه وسلسة في عملية البحث؟

راح أعطيك home Work هو عبارة عن مثال لمشرفة بالمنتدى فيه طريقة للبحث سهله وحلوه .. وتقوم أنت بتطبيقه على قاعدة بياناتك letter أوكي..اذا موافق (أكمل..)

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

طيب اليك شروط الاختبار :D :-

1- النقل من الامثلة مسموح..

2- الاستفسار عن النقاط المبهمة في الاختبار ايضا مسموح ..

3- الوقت مفتوح..

وشكرا

اخوك مشكاة

_________.rar

#13

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

شكرا مرة أخرى على مبادرتك الرائعة.

#14

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

ولكن الشئ الذي لم أخبرك به هو أنني أصمم هذا البرنامج لمشروع يضم مئات الألف من الرسائل

لذالك أجده من السهل علي عندما أبحث عن رساله ما أن أحدد To from و subject وRef و Date

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

مثلاً أتذكر أن الرسالة جأت في شهر 6 فأريد هنا تحيد ال Date . ما هو رأيك؟

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

letter_search.rar

#15

تحية طيبة يا نور..

بسم الله ماشاء الله .. بدأ القطار يسير على السكه!!

أولا:- عمل ممتاز وموفق .. وتستحقين :clapping:

ثانيا :- بالنسبة للطلبات الأخرى سنأتي لها بالتفصيل ولكن .. في البداية سنتعلم هذه الطريقة ثم ننتقل خطوة خطوة الى طرق أخرى .. أوكي؟!!

ثالثا: المطلوب الآن على نفس البرنامج تقومين بتوسعة عملية البحث بحيث تشمل جميع الحقول كما في الصورة ..

رابعا:-كمساعدة سيتم ارفاق مثال آخر يحاكي نفس الفكرة ..

ستقومين بالتطبيق ورفع الملف .. ماشي يانور..!!

ونحن بالانتظار

مرفق الملف الثاني

مشكاة

post-156430-1212577305_thumb.png

_________.rar

#16

السلام عليكم ،،

تحية طيبة ،،

ماذا حصل لنور ؟ أكيد ضاعت في الارشيف !!

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

المرحلة الأولى البسيطة :

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

المرحلة الثانية متطورة قليلا:

1- اضافة مربع سرد لإختيار الحقل الذي سيتم البحث من خلاله ..

2- اضافة زر بحث والغاء ميزة البحث عند التغيير ..

3- اضافة مجموعه خيار تحدد كيفية البحث في النص ( يبدأ بـ .. يحتوي .. ينتهي ..)

4- اضافة زر عرض التقرير للبيانات

هذه الخطة ونتوكل على الله

مشكاة

#17

تابع ...

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

post-156430-1212735104_thumb.png

وفائدة هذه الطريقة هي أننا نستطيع اضافة شروط أخرى مع الشرط الأول وذلك بسبب استخدام and وليس or كما هو موضح بالصورة التالية :

post-156430-1212735272_thumb.png

ملاحظة:

1- الحقل الاول يتم البحث به عند اجراء حدث التغيير كما كان في السابق ..

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

3- تم اضافة زر معاينة التقرير

ومرفق التعديل للمرحلة الاولى..

مشكاة

letter_sechUP1.rar

#18

تابع ..2

المرحلة الثانية :-

افترضت طبعا ان البحث سيكون خلال آلاف الرسائل ولذلك السرعة مطلوبة وبناء عليه سيتم الغاء الاستعلام في هذه المرحلة ولن نعتمد عليه ونستبدله بـ.. SQL

مع اجراء عملية تجميل بسيطة من خلال تحويله الى VBA لتقوم بالمهمة كلها.. كيف؟

الكود جديد من حيث اداء المهمة وحساس من ناحية ("") الهلالين وعوامل التشغيل .. ويتميز بالقدرة على المناورة في تحقيق نتيجة البحث..

( طبعا قاعد امدح الكود واضح :D )..

توضح الصورة الآن التعديلات الجديده ..

post-156430-1212738169_thumb.png

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

طيب نأتي الى طريقة العمل :

1- اضافة مربع تحرير وسرد وليكن اسمه في مثالنا هذا ftxt ونوع مصدر الصف ( قائمة الحقول) ومصدر الصف هو الجدول Letters

2- اضافة مجموعة خيار كما هي موضحه بالصورة اعلاه ..وليكن اسمه srchOption

3- اضافة زر بحث وليكن اسمه SrchCmd ونضع هذا الكود فيه

Dim strSql As String
Dim CrtTxt As String
Select Case srchOption
Case 1
	CrtTxt = ("txtSearch & ""*""")
Case 2
	CrtTxt = ("""*"" & txtSearch & ""*""")
Case 3
	CrtTxt = ("""*"" & txtSearch ")
End Select
If ([ftxt]) <> "" Then
strSql = "SELECT Letters.File_No, Letters.Letter_No, Letters.Letter_Ref, Letters.Letter_Subject, Letters.From_To, Letters.Date_Letter, Letters.Date_Receive " & vbCrLf & _
"FROM Letters  " & vbCrLf & _
"WHERE  " & ftxt & " Like " & CrtTxt & ";"
Me.SearchList.RowSource = strSql
Refresh
Else
MsgBox "يجب اختيار حقل للبحث"
Me.ftxt.SetFocus
End If

طبعا التوضيح هنا مهم جدا ..

ترجمة الكود

strSql= تم تعريفها كنص وسيتم استخدامها لإختصار عبارة SQL للإستفادة منها كمصدر لقائمة البحث ..

CrtTxt=تم تعريفها كنص مهمتها تبديل طريقة البحث يبدأ .. يحتوي .. ينتهي .. كما سنرى ( متابع يا أخي الفاضل ولا تشرب كاسة شاي.. متابع أكمل..)

txtSearch= اسم مربع النص المخصص لكاتبة قيم البحث فيه ..

ftxt= اسم مربع التحرير والسرد تم الاشارة اليه اعلاه ووظيفته يقوم بسرد الحقول ليتم اختيار احدها..

طبعا السر كله يكمن في تشكيل عبارة SQL المحولة الى VBA

لا حظ في البداية لا توجد أي مشكلة select واسماء الحقول التي نريدها هذه بسيطه..

from ايضا تحديد المصدر وهذه بسيطه

vbCrLf = وظيفتها اضافة سطر لا تهتم لها فالبرنامج الذي يقوم بالتحويل يفعل ذلك آليا ..( تم الاشارة اليه اعلاه)

where هي الاساس في كل ماسبق وهي اضافة اسم الحقل من خلال (" & ftxt & ") ملحوقا بالشرط من خلال (" & CrtTxt & ") وبدون هذه الطريقة ستظطر الى تكرار العبارة على عدد الحقول والشروط ..طبعا هذا مزعج ويدوخ :wacko: ..

تبقى الاشارة الى :

1- ("txtSearch & ""*""")= الهلال والنجمة ألحقت بعد txtSearch وتعني البحث من أول أي حقل

2-("""*"" & txtSearch & ""*""")= الهلال والنجمة بعد وقبل txtSearch وتعني البحث من أول أو وسط أو نهاية أي حقل (يحتوي).

3- ("""*"" & txtSearch ")= الهلال والنجمه قبل txtSearch وتعني البحث من نهاية الحقل..

طبعا يتم اضافة ""*"" أربع أهله ليتم ترجمتها كـ (*) في عبارة الـ VBA

Me.SearchList.RowSource= اسم مصدر القائمة SearchList متبوع بدالة تحديد المصدر وتساوي عبارة strSql التي تم تعريفها.

تقريبا هذا كل شيء....

وتحية لكم

مشكاة

Msh_Flash.rar

lett_srch_UP2.rar

تم تعديل هذه المشاركة بواسطة Mishkat ibrahim في 6 يونيو 2008 في 12:28

#19

تحية طيبه وبعد ،،

علشان خلص ضميري ..

تم اضافة ميزة الفرز تصاعدي وتنازلي حسب الحقل المختار.. كما هو موضح ..

post-156430-1212748027_thumb.png

ومرفق التعديل الأخير

مشكاة

lett_srch_UP3.rar

#20

أشكرك أخي وبارك الله فيك

والله ما كان أقصد أن أهمل التواصل معاك وكان يجب علي أن أوضح أن نهاية الأسبوع عادة أكون بعيدة عن النت.

أخي الكريم بارك الله فيك وجعل هذة الأعمال في ميزان حسناتك. بصراحة أستفدت منك كثيير.

شكرااااااا أخي.

#21

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

لكن لا أدري لماذا لم يعمل حاولت أن أصل الى الخظأ بنفسي ولكن لم أستطيع

هل لك أن تساعدني.

لدي سؤال أخر : لماذا أظفت جدول ثالث sd: .

شكراً

letter_search.rar

#22

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

تحية طيبة يا نور ،،

اولا : الحمد لله ان اليوم الاثنين يعني باقي على week end تقريبا (3) ايام وهذا يعني ان النت موجود..

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

ثالثا: بالنسبة للجدول sd صراحة كنت فاضي وقلت لنفسي اذا نور شاطره راح تسأل عنه .. وإذا كانت ليست شاطره سوف تهمله .. طبعا طلعت شاطره وسألت عنه وهذا الجدول عبارة عن نسخة عن الجدول Letters فقط لاغير بإمكانك ان تمسحيه وبلا رجعه ..أوكي!!

رابعا:- توجد ملاحظات على الطريقة التي عملت البرنامج حيث ان هدفك هو التعلم سنأتي لها .. إن شاء الله بعد قليل ..

يتبع .............

مشكاة

#23

تابع ....

تحية طيبة ،،

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

ثانيا :- الملف بعد التعديل على الاخطاء .. هو home work أوكي ..

ثالثا:- اذا كان يوجد استفسار على الرحب والسعة ..

مشكاة

letter_flash.rar

تم تعديل هذه المشاركة بواسطة Mishkat ibrahim في 9 يونيو 2008 في 20:14

#24

أخي الكريم أرجو المعذرة

ولكن عندما أختارOption Group

لا تظهر لي شاشة للمتابعة حاولت أكثر من مرة ولكن دون فائدة.

#25

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

عذرا ع التأخير بسبب فترة الامتحانات

أولا:- لكي يعمل الاكسس عندك بشكل ممتاز يجب التأكد من :

1- هل نسخة مايكروسوفت اوفس المثبته لديك 2003 او اصدار قديم ؟

2- هل تم تثبيت نسخة الاكسس 2003 تثبيت تام أو تثبيت مخصص او تثبيت عادي؟

طبعا انا لا أطلب الاجابة ولكن اعطيك مؤشرات على موضع الخلل فقط لاغير ..

ثانيا:- نأتي الى المشكلة التي صادفتك

اقتباس
ولكن عندما أختارOption Group لا تظهر لي شاشة للمتابعة حاولت أكثر من مرة ولكن دون فائدة.

لا توجد مشكلة هنا حتى لو لم يظهر المعالج .. نقوم بالتالي:-

1- اختيار Option Group

2- اختيار زر خيار

3- افلات الزر داخل المربع ( ملاحظة ستجد المربع يتغير لونه الى الأسود)

فقط وتنتهي المشكلة ..

ومرفق فلاش يوضح الخطوات خطوة خطوة..

مشكاة

Flash_optBox.rar

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