السلام عليكم ورحمة الله وبركاته
عندى سؤال بخصوص البحث فى قاعدة البيانات
ارريد البحث فى treeview و textbox وظهظر الناتج فى listbox
وعندك الضغط على الناتج يظهر مكانه
ودى الصورة اريد ان اعمل مثلها
رابط المثال للتعديل بارك الله فيكم
السلام عليكم ورحمة الله وبركاته
عندى سؤال بخصوص البحث فى قاعدة البيانات
ارريد البحث فى treeview و textbox وظهظر الناتج فى listbox
وعندك الضغط على الناتج يظهر مكانه
ودى الصورة اريد ان اعمل مثلها
رابط المثال للتعديل بارك الله فيكم
المفرود انك تطلبي استفسار ومساعدة في كتابة كود لا بناء فورم كامل بأكواده في البرنامج
فنحن هنا للمساعدة فقط والمساعدة في معرفة وفهم الكود لا عمل كود واخده 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
اوكى انا اسفة
ممكن كود عشان ابحث بيه فى treeview وكود بحث فى textbox
وظهور النتيجة فى listbox :sleep:
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
اللهم صل على محمد وآل محمد
أختي أنتي كثيرة الأسئلة ، لا يعني أنه شيئ سيئ ولكن قبل طرح السؤال إبحثي وحاولي :happy:
نصيحة مني تعلمي لأن في المستقبل ستعتمدين على نفسك
فمثلاً هذا السؤال يمكنكي أن تحليه بدوننا بوجود هذه الأساسيات في عقلك
حتى في مثالك لم تتعبي نفسك حتى في تصميم الفورم وتريدين أن نساعدك :mad:
مثلاً أنتي تعريفين كود البحث في قواعد البيانات وإن لم تكوني تعرفي فإبحثي عنه
ثانياً أنتي تعريفين كيفية أضافة ليست في أداة الليست بوكس وإن لم تكوني تعريفي فإبحثي عنه فالمنتدى مملوء بهذه المعلومات
ثالثاً البحث في TreeView والتيكس بوكس هذه سهلة ولكن قبل أن نساعدك نصيحة مني حاول ثم أرفقي المثال التي تعبتي عليه هكذا سنساعدك وإلا فإسمحي لي لن يجيب عليك أحد إلا الذي لا يريدك أن تتعبي نفسك :blink:
حسناً .. لنتعلم سوياً ..
اولاً لإضافة بيانات في الليست دي سهلة , فقط :
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هنا عند اول عنصر يجده سيظهر الرسالة ثم سيخرج من الحلقة ولن يكمل البحث
بهذا يكون لديكِ كل ما تحتاجينه لتقومي ببناء فورم البحث وكتابة اكواده
كل ما عليكِ فعله هو فهم هذه الاوامر لتقومي بتطبيقها..
لدي ملحوظة واحدة:
كان من الاسهل لي ان اقوم بكتابة كود البحث الذي تريدين بدلاً من شرح هذا كله
لكن انا كل ما افعله لرغبتي في مساعدة الاعضاء على فهم الكود مثل ما افعل عندما استفسر عن سؤال او ابحث عن كود معين ..
فأنا اشعر بان تعبي كله ذهب هباءا منثورا عندما يقوم العضو بنسخ الكود ووضعه كما هو دون محاوله فهمه ..
It does not matter what they know about you, but what you can do, so let your work speak of you
mmghv VB6 Programmer
اخى انا اسفة لتعبك وانا عارفه انى بسال كتير
بس انا فهمت الشرح بتاعك مفيش اى مشكلة بس مش عارفة اطبقه فى المثال
سامحنى انا مبتدئة
لا عيب في السؤال طالما تتحقق منه الإفادة في الفهم والتعلم, فلولا السؤال ما تعلمنا جميعاً, فأنا بدايتي كانت في هذا المنتدى وهو ما تعلمت منه الكثير عن طريق طرح اسئلة او حتى الإجابة على اسئلة ..
بالنسبة لمشروعك اولاً حاولي فهم الاكواد وتطبيقها على مثال صغير ثم على مشروعك, فإن واجهتكي مشكلة ضعي المثال به محاولتك في التطبيق واعرضي المشكلى التي واجهتكى لنقوم بمساعدتك على حلها ..
It does not matter what they know about you, but what you can do, so let your work speak of you
mmghv VB6 Programmer