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

بحث فى قاعدة البيانات

بدأه سلمى محمد في 16 فبراير 2012 · 6 رد · 929 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندى سؤال بخصوص البحث فى قاعدة البيانات

ارريد البحث فى treeview و textbox وظهظر الناتج فى listbox

وعندك الضغط على الناتج يظهر مكانه

ودى الصورة اريد ان اعمل مثلها

رابط المثال للتعديل بارك الله فيكم

الرابط الخاص بي

post-256831-002939100 1329404206_thumb.j

المرفقات
da.JPG
#2

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

فنحن هنا للمساعدة فقط والمساعدة في معرفة وفهم الكود لا عمل كود واخده Copy & Paste

إذا كنتي تريدي مساعدة في عمل الكود وفهمه لتقومي بتطبيقه في مشروعك فأخبرينا لنقوم بمساعدتك

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#3

اوكى انا اسفة

ممكن كود عشان ابحث بيه فى treeview وكود بحث فى textbox

وظهور النتيجة فى listbox :sleep:

#4

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

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

اللهم صل على محمد وآل محمد

أختي أنتي كثيرة الأسئلة ، لا يعني أنه شيئ سيئ ولكن قبل طرح السؤال إبحثي وحاولي :happy:

نصيحة مني تعلمي لأن في المستقبل ستعتمدين على نفسك

فمثلاً هذا السؤال يمكنكي أن تحليه بدوننا بوجود هذه الأساسيات في عقلك

حتى في مثالك لم تتعبي نفسك حتى في تصميم الفورم وتريدين أن نساعدك :mad:

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

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

ثالثاً البحث في TreeView والتيكس بوكس هذه سهلة ولكن قبل أن نساعدك نصيحة مني حاول ثم أرفقي المثال التي تعبتي عليه هكذا سنساعدك وإلا فإسمحي لي لن يجيب عليك أحد إلا الذي لا يريدك أن تتعبي نفسك :blink:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#5

حسناً .. لنتعلم سوياً ..

اولاً لإضافة بيانات في الليست دي سهلة , فقط :

List1.AddItem "ItemText"

ثانياً .. البحث في النصوص:

نستطيع مقارنة نص بنص آخر وإستخدام جملة شرطية مثل:

If "Text1" = "Text2" Then
	...
End If

لكن ماذا إذا اردنا ان نبحث في جزء من النص, مثلاً نبحث في النص "احمد محمد محمود" عن كلمة "محمد"

في هذه الحالة نستخدم الدالة InStr

وإستخدامها كالتالي:

MsgBox InStr("احمد محمد محمود", "محمد")

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

ففي المثال سترجع بالعدد 6 اي انها وجدت النص "محمد" في النص "احمد محمد محمود" يبدأ من الحرف السادس

ويكون ناتج الدالة 0 في حالة عدم العثور على النص داخل النص المبحوث فيه

وهذا مثال لإستخدام الدالة:

If InStr(Text1.Text, "Ahmed") > 0 Then
	'DoSomething
End If

فهنا نبحث عن كلمة "Ahmed" في النص الموجود في Text1 ونستخدم "اكبر من الصفر" اي انه موجود في مكان ما في التكست بوكس , في اوله او في منتصفه او آخره

لكن إذا اردنا التأكد من وجوده في اول النص فقط نستخدم "=1" بدلاً من ">0" اي ان موقعه من النص هو اوله

If InStr(Text1.Text, "Ahmed") = 1 Then
	'DoSomething
End If

ثالثاً , البحث في الليست او التري فيو او اي اداه تحوي عدد غير محدد من العناصر

طبعاً هذه الادوات تحوي عدد غير محدد من العناصر إذاً نريد لكود البحث ان يتكرر عدد مرات يتم تحديدها بناءاً على عد العناصر في الاداه, إذاً نحن نريد حلقة تكرارية Loop

للحلقات التكرارية اكثر من نوع, فمنها من يقوم بتكرار امر لعدد معين من المرات (مثل For .. Next) ومنها من يقوم بتكرار الامر (طالما او حتى) (يتحقق او لا يتحقق) شرط معين (Do .. Loop)

هنا نحن نريد تكرار الامر عدد معين من المرات (وهو عدد العناصر) إذاً سنستخدم الحلقة التكرارية (For .. Next)

وتكون الصيغة العامة لها :

For [Counter] = [Start] To [End] Step [Step]
	[Statements]
Next

حيث :

[Counter] هو عداد الحلقة ويكون متغير عدد (مثلاً n)

[start] هو العدد الذي ستبدأ منه الحلقة (مثلاً 1)

[End] هو العدد الذي ستنتهي عنده الحلقة (مثلاً 10)

[step] هي خطوة الحلقة , اي المقدار الذي سيزداد به العداد كل مرة (مثلاً 2) مع ملاحظة انه يمكن الاستغناء عنها وفي هذه الحالة ستكون الخطوة الإفتراضية 1

[statements] هنا نكتب الاوامر او الاكواد المراد تكرارها

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

وهذا مثال بسيط لكود حلقة تكرارية:

For n = 1 To 100
	List1.AddItem n
Next

في هذا المثال نقوم بتكرار الامر (List1.AddItem n) عدد مرات من 1 الى 100

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

ويقوم هذا الكود بإضافة 100 عنصر في الليست يكون محتواهم من 1 الى 100

وهنا لم نستخدم الجزء Step لاننا نريد ان تكون الزيادة بمقدار 1

فمثلاً لو اردنا إضافة كل الارقام الزوجية من 2 الى 100 نستخدم الكود:

For n = 2 To 100 Step 2
	List1.AddItem n
Next

فهنا قمنا بتحديد الخطوة 2 اي يزيد العداد كل مرة بمقدار 2 فيقوم بإضافة 50 عنصر في الليست يكون محتواهم 2 ثم 4 ثم 6 .... حتى 100

ولتنفيذ الحلقة التكرارية على الـ TreeView للبحث مثلاً عن العنصر الذي يكون نصه "Ahmed" نستخدم مثل هذا الكود:

For n = 0 To TreeView1.Nodes.Count - 1
	If TreeView1.Nodes(n).Text = "Ahmed" Then
    	MsgBox "Ahmed Found at Node Number:" & n
	End If
Next

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

هنا جعلنا بداية الحلقة من 0 لان اول عنصر في الشجرة يكون رقمه 0

وجعلنا نهاية الحلقة هى (TreeView1.Nodes.Count - 1) اي عدد العناصر -1

فمثلاً لو كانو 4 عناصر ستكون نهاية الحلقة عند 3

حسناً , لماذا -1 .. لان إذا ابتدأ العد من الصفر وكان عدد العناصر 4 يكون رقم العناصر (0-1-2-3) ويكون آخر عنصر رقمه 3 .. اي عدد العناصر -1

وفي امر الحلقة الذي يتكرر استخدمنا جملة شرطية للتحقق من نص العنصر وهنا استخدمنا عداد الحلقة لإختيار رقم العنصر الذي نبحث فيه (TreeView1.Nodes(n).Text) فالمتغير n يزداد واحد كل دورة ففي الدورة الاولى يبحث في العنصر رقم 0 وفي الدورة الثانية يبحث في العنصر رقم 1 .. وهكذا ..

ويقوم الكود بالتحقق من نص العنصر فإذا كان مساوياً للنص "Ahmed" يظهر رسالة تحوي رقم العنصر

ويظهر رسالة كل مرة يجد فيها عنصر تنطبق عليه الشروط, فمثلاً إذا وجد 30 عنصر سيظهر 30 رسالة

آخر شئ هو كود الخروج من الحلقة, فمثلاً لو اردنا الخروج من الحلقة عند او عنصر يجده ولا يكمل البحث نستخدم الامر:

Exit For

فيكون الكود:

For n = 0 To TreeView1.Nodes.Count - 1
	If TreeView1.Nodes(n).Text = "Ahmed" Then
    	MsgBox "Ahmed Found at Node Number:" & n
    	Exit For
	End If
Next

هنا عند اول عنصر يجده سيظهر الرسالة ثم سيخرج من الحلقة ولن يكمل البحث

بهذا يكون لديكِ كل ما تحتاجينه لتقومي ببناء فورم البحث وكتابة اكواده

كل ما عليكِ فعله هو فهم هذه الاوامر لتقومي بتطبيقها..

لدي ملحوظة واحدة:

كان من الاسهل لي ان اقوم بكتابة كود البحث الذي تريدين بدلاً من شرح هذا كله

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

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

1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#6

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

بس انا فهمت الشرح بتاعك مفيش اى مشكلة بس مش عارفة اطبقه فى المثال

سامحنى انا مبتدئة

#7

لا عيب في السؤال طالما تتحقق منه الإفادة في الفهم والتعلم, فلولا السؤال ما تعلمنا جميعاً, فأنا بدايتي كانت في هذا المنتدى وهو ما تعلمت منه الكثير عن طريق طرح اسئلة او حتى الإجابة على اسئلة ..

بالنسبة لمشروعك اولاً حاولي فهم الاكواد وتطبيقها على مثال صغير ثم على مشروعك, فإن واجهتكي مشكلة ضعي المثال به محاولتك في التطبيق واعرضي المشكلى التي واجهتكى لنقوم بمساعدتك على حلها ..

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

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