فلترة البيانات مفيدة جدا خاصة عندما تكون البيانات التي يتم البحث فيها كثيرة ومتشابهة ونحتاج إلى وصول سريع لها واتخاذ قرار بشأنها.
وسأشرح في هذا الدرس كيفية عمل فلترة لبيانات جدول من نوع mshflixgrid يحصل على هذه البيانات من أداة adodc1 وتتم الفلترة عند أي تغيير في مربع نص تم تسميته Text1 كما هو موضح في الصورة التالية
سنقوم الآن بكتابة حرف "م" في مربع النص ولنر النتيجة:
ماذا لو أضفنا حرف أيضا "مص" عندها ستزيد الفلترة ونحصل على الناتج التالي
ماذا لو أضفنا حروف غير موجودة مثلا "مصص" كما في الصورة التالية
كما لاحظنا سيتم عرض جميع البيانات بمعنى آخر الخروج من الفلترة وتظليل مربع النص باللون الأصفر لتنبيه المستخدم بعدم وجود البيانات المدخلة
أعتقد أننا عرفنا الآن مدى أهمية هذه العملية خاصة إذا كان مستخدم البرنامج يواجه ضغطا في العمل ويحتاج للسرعة في الإدخال فبدلا من الاختيار من قائمة منسدلة -عدد الدول في هذا الجدول 313 بما فيها الولايات الأمريكية- يظهر له هذا الجدول وبمجرد الضغط على اسم الدولة يتم تسجيلها في مربع النص الخاص بها في النموذج الرئيسي
وقد أخذت هذه الفكرة من برنامج نقاط بيع -POS- حيث يكون وقت الكاشير مضغوطا جدا خاصة في أوقات
ذروة زحام المشترين
كانت هذه مقدمة والآن نبدأ الدرس:
بداية نصمم قاعدة بيانات أكسس بها جدول اسمه country وبه حقلين فقط id و country_name نرجع إلى الفيجوال بيسك ونفتح مشروع جديد ونختار Data Project ونضع على النموذج مربع نص وأداة mshflixgrid وأداة adodc
نضغط بزر الفارة الأيمن على أداة adodc ونختار Adodc Property ونقوم بربط الأداة بقاعدة البيانات كالتالي
من General نختار use connection string ونضغط زر Build واختر محرك Microsoft Jet4 OLE DB Provider أو أي محرك آخر يناسب قاعدة البيانات التي قمت باستخدامها سواء كانت SQL Server أو Oracle أو غير ذلك بعدها اضغط زر next وحدد مكان قاعدة البيانات ثم اضغط OK بعدها حدد الـ record source وبإمكانك هنا تحديد جدول أو استعلام ثم اضغط Ok
نذهب الآن إلى خصائص mshflixgrid ونقوم بربطها بأداة adodc بتحديدها من الخاصية data source
جرب تشغيل البرنامج الآن ستجد أن البيانات ظهرت في الجدول
نضيف الآن الكود التالي في حدث Text1_Change
Private Sub Text1_Change() Text1.BackColor = vbWhite Dim ft On Error GoTo 11: prevbookmark = Adodc1.Recordset.Bookmark ft = Text1.Text If ft = "" Then Adodc1.Recordset.Filter = adFilterNone Else Adodc1.Recordset.Filter = " country_name like '" & ft & "%'" If Adodc1.Recordset.EOF Then Adodc1.Recordset.Bookmark = prevbookmark End If End If Exit Sub 11: Adodc1.Recordset.Filter = adFilterNone Text1.BackColor = vbYellow End Sub
شغل البرنامج الآن واستمتع بتجربة نظام الفلترة الخاص بك
يوجد ملف مرفق يوجد به الدرس كامل مع مثال
أتمنى للجميع الفائدة




