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

الفلترة (تصفية البيانات)

مغلق
بدأه Sunny في 1 أغسطس 2005 · 18 رد · 3,241 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

وسأشرح في هذا الدرس كيفية عمل فلترة لبيانات جدول من نوع mshflixgrid يحصل على هذه البيانات من أداة adodc1 وتتم الفلترة عند أي تغيير في مربع نص تم تسميته Text1 كما هو موضح في الصورة التالية

01_08_05_08_06_17_11229087771.JPG

سنقوم الآن بكتابة حرف "م" في مربع النص ولنر النتيجة:

01_08_05_08_07_39_1122908859_.JPG

ماذا لو أضفنا حرف أيضا "مص" عندها ستزيد الفلترة ونحصل على الناتج التالي

01_08_05_08_08_21_11229089013.JPG

ماذا لو أضفنا حروف غير موجودة مثلا "مصص" كما في الصورة التالية

01_08_05_08_09_22_11229089624.JPG

كما لاحظنا سيتم عرض جميع البيانات بمعنى آخر الخروج من الفلترة وتظليل مربع النص باللون الأصفر لتنبيه المستخدم بعدم وجود البيانات المدخلة

أعتقد أننا عرفنا الآن مدى أهمية هذه العملية خاصة إذا كان مستخدم البرنامج يواجه ضغطا في العمل ويحتاج للسرعة في الإدخال فبدلا من الاختيار من قائمة منسدلة -عدد الدول في هذا الجدول 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

شغل البرنامج الآن واستمتع بتجربة نظام الفلترة الخاص بك

يوجد ملف مرفق يوجد به الدرس كامل مع مثال

أتمنى للجميع الفائدة

arabteam.rar

تم تعديل هذه المشاركة بواسطة عبد الله فتحي في 2 أغسطس 2005 في 19:46

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#2

لو اردنا الفلترة بحروف في وسط الكلمة وليس من اولها نغير الكود التالي

Adodc1.Recordset.Filter = " country_name like '" & ft & "%'"

ممكن نفكر سويا ؟؟!

فقط نضيف رمز واحد فقط ... ترى ما هو؟؟؟

:rolleyes:

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#3

مشكووووووور اخي الكريم على الشرح والمثال

درس جميل

تحياتي لك

اخوك ناصر

#4

جزاك الله الف خير

فعلا درس مهم ومفيد .. جزاك تااف تاف تاف خير ,, جعلها في ميزان حسناتك .

أشهد أن لا إله إلا الله ***************** وأشهد أن محمد عبده ورسوله

#5

بارك الله فيك Sunny على هذا الشرح المفيد ..

ani.gif
#6

أحسنت أخي على هذا الكود الرائع

اقتباس
لو اردنا الفلترة بحروف في وسط الكلمة وليس من اولها نغير الكود التالي

Adodc1.Recordset.Filter = " country_name like '" & ft & "%'"

ممكن نفكر سويا ؟؟!

فقط نضيف رمز واحد فقط ... ترى ما هو؟؟؟

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

Adodc1.Recordset.Filter = " country_name like '" & ft & "*%'"

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#7

أشكرك على هذا الموضوع النادر

والفكرة المتميزة في الفلترة

بالإضافة إلى التلوين وكذلك الخروج من الفلترة عند عدم مطابقة النص

#8

الاخ omani

الاجابة خاطئة العلامة هي %

بس أين نضعها

؟؟؟؟

لاحظ اننا وضعناها في آخر الجملة في الكود السابق

تم تعديل هذه المشاركة بواسطة Sunny في 3 أغسطس 2005 في 15:00

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#9

جزاك الله خيرا أخي Sunny

essam.gif

منتديات كوكب الكمبيوتر

لكل جديد في عالم تكنولوجيا المعلومات والكمبيوتر والأخبار العلمية

http://www.planetss.com/vb

#10

اليكم الحل

Adodc1.Recordset.Filter = "EngStateName like '%" & ft & "%'"

كما في الصورة التالية

03_08_05_06_41_13_11230764735.JPG

لكن يفضل وضع الكود في حدث الضغط على زر الادخال في هذه الحالة

* هل لاحظتم انه عند الضغط على اسم الدولة يتم وضعها في الحقل الخاص بها في النموذج الرئيسي

هل لدى أحدكم أفكار أخرى لأضافتها على هذا الدرس؟؟؟

فلنفكر سويا في أنه عند عدم وجود عنصر البحث لا يتم عرض أي بيانات في الجدول بدلا من تلوين الحقل كما فعلت ؟!!

B)

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#11
ANSI كتب:
جزاك الله الف خير

فعلا درس مهم ومفيد .. جزاك تااف تاف تاف خير ,, جعلها في ميزان حسناتك .

الاخ ابن اليمن

هل معنى

تااف = ألف

في اليمن

على فكرة أنا أعز أهل اليمن جدا ولي منهم اصدقاء كثر

شكرا لك

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#12

بارك الله فيك Sunny على هذا الشرح المفيد .. :)

gaza3-3.jpg
#13

نسخة جديدة من ملف الدرس بصيغة PDF بها بعض الاضافات

المثال موجود في المشاركة الاولى

Filtering2.pdf

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#14

مرحبا بكم بعد طول غياب

سنفكر الان فيما لو أردنا أن نصنع تصفية مركبة أو مزدوجة

بمعنى تقبل أكثر من باراميتر مثلا في مثالنا السابق كنا نضع اسم الدولة

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

...

قريبا باذن الله بمناسبة العودة للمدارس

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#15

مشكور على هذه المعلومات المفيده

;) ;) :rolleyes:

#16

شكراً أخي على الدرس

لكن برأيي لا يوجد ما هو أفضل من SQL

#17

جربوا يا شباب وضع علامة * قبل الكتابة في مربع البحث

مفيدة جدا للبحث عن جزء من الحقل

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#18

الحمد لله

تم تعديل هذه المشاركة بواسطة أبو زيد في 6 أبريل 2006 في 12:29

#19

الاخ ابو زيد

لم افهم شيئا لكن على العموم

يرحمك الله :D

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

هذا الموضوع مغلق.

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