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

درس: البحث والعرض التلقائي في الComboBox مع قاعدة البيانات

بدأه سنان محمد صالح في 8 سبتمبر 2010 · 2 رد · 1,782 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

اي انها ستكون شبيهه بالموجودة في محرك البحث جوجل ..

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

وهذا ما سنقوم ببرمجته الان .. في برنامج بسيط ..

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

لنبدأ ..

1- الان لنقم بفتح مشروع جديد ..

2- اول ما نحتاجه هو ربط المشروع مع قاعدة بيانات .. وهذه لن اتطرق لها الان لانها مشروحة سابقا وبكثرة ..

3- وصلنا الان الى مرحلة لدينا مشروع ومرتبط مع قاعدة بيانات تحتوي جداول ..

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

5- نضيف Combox على حسب ما نريد ان نربطها معه .. يعني اي عدد كان من الاداة ونربط كل واحدة مع عمود معين من الجدول المطلوب البحث فيه .

المثال المرفق بعد التصميم وربط قاعدة البيانات .. يكون على الشكل التالي ..

post-53367-084669200 1283913707_thumb.pn

6- في الحدث Form_Load نكتب الكود التالي :

Dim tRow As DataRow, tTbl As DataTable
 tTbl = DbDataSet.Tables.Item(0)
         ComboBox1.Text = ""
        ComboBox1.Items.Clear()
        ComboBox1.BeginUpdate()
        ' 
        For Each tRow In tTbl.Rows
            ComboBox1.Items.Add(tRow("NA").ToString)
        Next
        ComboBox1.EndUpdate()

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

الاسطر بعدها واضحة ..

لنصل الان الى الدوارة loop والتي من خلالها نجد اننا قمنا باضافة كل محتويات الجدول NA الى الCombo الاول ..

وبعدها انهينا التحديث ..

7- الان لدينا الكود الخاص بالاداة Combo في الحدث TextChanged .. وهو كالتالي ::

    Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
        Dim bIx As Integer, lEx As Boolean
        Dim box As ComboBox = sender
        Dim txt As String = box.Text
        Dim pCr As Integer = box.SelectionStart

        If pCr <> 0 Then
            lEx = False

            For bIx = 0 To box.Items.Count - 1
                If UCase(Mid(box.Items(bIx), 1, pCr)) = _
                   UCase(Mid(txt, 1, pCr)) Then
                    box.Text = box.Items(bIx)
                    box.SelectionStart = pCr
                    lEx = True
                    Exit For
                End If
            Next

            If Not lEx Then
                box.Text = Mid(txt, 1, pCr - 1) + Mid(txt, pCr + 1)
                box.SelectionStart = pCr - 1
            End If
        End If
    End Sub

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

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

لم اجد ما يفيد ..اردت التغيير في طرح الامثلة .. كل الامثلة حول الشركات والمبيعات والمخازن .. كرهتها لكثرتها .. ولقلة شركاتي ..

post-53367-065008100 1283913946_thumb.pn

حمل المثال ::

AutoComboBox.rar

تحياتي العطرة ..

المرفقات
121.png131.png
1

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#2

يعطيك الف عافية اخي العزيز سنان محمد صالح

أتمنى لك التوفيق وكل عام وانت طيب

عن عبد الله بن مسعود رضي الله عنه قال: سألت النبي صلى الله عليه وسلم أي العمل أحب إلى الله عز وجل؟ قال: ( الصلاة على وقتها) قال: ثم أي؟ قال: ( بر الوالدين ) قال ثم أي؟ قال: ( الجهاد في سبيل الله )

302889519.gif

رابط المصحف الرقمي الفلاشي بأكثر من روايات - القرآن الكريم

#3

جزاك الله خيرا على الدرس الرائع ...

بالتوفيق

Zefri Yahya - ArabTeam 2000

tpc7rzy94tx8iduak4b.png

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