![]() |
|
فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18) +---- قسم : قسم مقالات vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=29) +---- الموضوع : فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع (/showthread.php?tid=5592) |
فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع - RaggiTech - 14-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .المقدمة : في الدرس السابق تعلمنا طرق انشاء وربط قاعدة البيانات . وكيفية التعامل معها . في هذا الدرس سوف نتعرف على أحد اشهر أنواع جداول العرض ، وهو MSFlexGrid . الدرس : في هذا الدرس سوف نتعامل مع أحد أشهر أنواع الجداول لعرض البيانات وهو MSFlexGrid . للوصول اليه اضغط Ctrl+T واختر Microsoft FlexGrid Control 6.0 (SP3) والآن إلى أهم خصائص properties وطرق methods هذه الأداة : اقتباس: [TABLE="width: 100%"] [TR] [TD="class: alt2"]Clear : مسح كامل بيانات الجدول . Cols : عدد الأعمدة الاجمالي في الجدول ، في مثالنا هو 3 ( الرقم - الاسم - الهاتف ) . Rows : عدد الصفوف ، وهو في مثالنا ( عدد السجلات ) + 1 الخاص بالصف الرئيسي . Fixed Col : عدد الاعمدة الثابته ، وتعرض هذه الخاصية الأعمدة بصورة دائمة مهما كان عرض الجدول . Fixed Rows : نفس الخاصية السابقة ولكن بالنسبة للصفوف . Row : الصف الحالي ، وذلك لتحديد الطرف الأول للخلية Cell . Col : العمود الحالي ، وذلك لتحديد الطرف الثاني للخلية Cell . ومن تقاطع قيمتيهما نستطيع اجراء أغلب العمليات الرئيسية . Text : النص ، وهو النص المعروض في الخلية التي يقف عندها المؤشر ( تقاطع خاصيتي Row ، Col ) . Text matrix(r,c) : لوضع - قراءة نص في مكان غير المكان الذي يقف عنده مؤشر ( Col , row ) نستخدم هذه الطريقة ، ونرسل للدالة صف وعمود الخلية Cell المطلوبة . Col Aligment© : محاذاة العمود الذي يتم ارسال قيمته . Col Width© : عرض العمود المحدد بقيمة c . Row Height® ارتفاع الصف المحدد بقيمة r . Back Color : لون خلفية الجدول . Back Color Fixed : لون خلفية العناصر الثابتة . Cell Back Color و Cell Fore Color : لون خلفية الخلية Cell والخط بداخلها على الترتيب . Sort : تحدد طريقة ترتيب بيانات العمود الحالي ، وتأخذ قيم من 0 وحتى 9 . 0 : بدون ترتيب . 1،2 ترتيب تصاعدي وتنازلي على الترتيب . 3و4 : ترتيب تصاعدي وتنازلي بدلالة الارقام . 5و6 : ترتيب تصاعدي وتنازلي بالحروف دون النظر إلى حالة الحرف A=a . 7و8 : ترتيب تصاعدي وتنازلي بالحروف مع النظر إلى حالة الحرف A<>a . 9 ترتيب مخصص .[/TD] [/TR] [/TABLE] أول خطوة هي عمل اتصال بين قاعدة البيانات المؤقتة T2 والجدول : كود : Set T2 = D1.OpenRecordset("tb", dbOpenTable)كود : Private Sub fill_Table()في هذا الاجراء ومهمتنا الأولى قبل ادخال البيانات هي تصميم الشكل العام للجدول ، فإذا اردنا الكتابة في مربع 0 و 0 مثلاً ، فإننا نقوم بالتالي : كود : MSFlexGrid1.Row = 0والآن جاء دور العمل مع قاعدة البيانات ، لا تنس أننا سوف نتعامل الآن مع T2 لأننا سوف نتنقل بينها دون أن نؤثر على العرض الرئيسي للبرنامج . الخطوة الأولى هي معرفة عدد السجلات ، وهو عدد الصفوف في الجدول + 1 ( من أجل صف العنوان ) . كود : If T2.RecordCount < 1 Then Exit Sub والآن سوف نقوم بالدوران على كل سجلات قاعدة البيانات ، ومع كل سجل سوف ننقل إلى الصف الخاص به ، ومن ثم نتنقل بين الأعمدة الثلاثة لوضع كل بيان في موضعه الصحيح ، وأخيراً ننتقل إلى السجل التالي . كود : For i = 1 To Nكود : MSFlexGrid1.ColWidth(0) = 500تابع للجدول MSFlexGrid . بالنسبة لأحداث Events الجدول MSFlexGrid فأغلبها مثل الأدوات العادية مثل الحدث Click و DblClick ، ولعرض محتوى الخلية Cell عند الضغط عليها مرتين بالماوس نكتب : كود : Private Sub MSFlexGrid1_DblClick()وهناك بعض الأحداث الجديدة مثل EnterCell ، وينطلق هذا الحدث في كل مرة تضبط فيها خاصيتي Col , Row ليشكل تقاطعهما خلية جديدة سواء أكان ذلك من خلال الماس أو من خلال أوامر الكود ، ومقابلة الحدث LeaveCell وهو يحدث عندما تترك خلية . أحداث أخرى مثل GetFocus و lostFocus تنطلق عندما يصل التركيز ( التحديد ) إلى الاداة أي بمعنى ان تصبح الأداة نشطة سواء من خلال استخدام مفتاح Tap أو من خلال اختيار الأداة بالماوس . أيضاً حدث RowColChange عند تغيير الصف أو العمود ، و SelChange عند تغيير التحديد . Scroll عند استخدام ال Scroll للتنقل بين صفوف الجدول أو اعمدته . هناك أحداث Drag وهي مشتركة بين اغلب الادوات وهي الخاصة بعمليات سحب الأدوات أو السحب عليها ، أحداث الماوس Mouse أيضاً مشتركة وهي الخاصة بمرور الماوس أو الضغط - الرفع بأزراره المختلفة . ** مثال : كيفية تلوين صف بكامله في الجدول : لعمل ذلك نستخدم الخاصية Cellbackcolor ، فمثلاً لو اردنا تحديد الصف رقم 2 باللون الأحمر ، فإننا نكتب الأمر التالي : كود : MSFlexGrid1.Row = 2وفي زر الامر الخاص بالتلوين ، سوف نقوم بقراءة رقم الصف المطلوب من خلال Input Box ، ونتأكد من أن الرقم لا يتجاوز الحد الأقصى من الصفوف ، ومن ثم نكتب الأوامر السابقة ، وبذلك يصبح الكود الاجمالي بالشكل التالي :
كود : Dim x As Integerوبنفس الطريقة إذا اردنا تحديد عمود ، حيث سنتقل بين الصفوف المختلفة .
خاتمة : تعرفنا في هذا الدرس على بعض خصائص MSFlexGrid ، الاحداث ، وكيفية وضع القيم المختلفة داخل الجدول . في الدرس القادم سوف نقوم بعمل بحث على القيم الموجودة في قاعدة البيانات . والسلام عليكم ورحمة الله وبركاته . فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع - RaggiTech - 14-10-12 بسم الله الرحمن الرحيم . المقدمة : في الدروس السابقة تعلمنا كيفية فتح قاعدة البيانات والتعامل معها ، العرض في الجدول MSFlexGrid ، والآن سوف نقوم بالبحث من خلال احدى جمل الاستعلام وهي جملة Select ، وقريباً سيكون هناك شرح مفصل لجمل الاستعلام . الدرس : تذكير سريع بجملة Select . من أشهر جمل الاستعلامات هي الجملة التي تستخدم الكلمة المفتاحية Select . وصيغتها القياسية هي : كود : select field(s) form table(s) where conditon
حيث أن Fields تعني الحقول التي تظهر نتيجتها في البحث ، وقد تكون اسماء حقول مثل name,tele أو قد تكون * لعرض الكل ، وقد تكون نواتج عملية حسابية مثل Max(number) أو Count(*) .
أما Tables فهي اسماء الجداول ، والشروط فهي مثل name='ahmed' و age>5 ، مع استخدام معاملات اخرى مثل between و Like ، وبارميترات Parmeters مختلفة مثل ? و - وغيرها . وأخيراً اذكرك بأنه عند التعامل مع النصوص فإنه لا بد من وضع '' حول الاسم ، ومع التواريخ يتم وضع ## حول التاريخ وهما النوعان الأكثر استخداماً ، أما الارقام فلا تحتاج إلى اي شيء ... والآن إلى بداية الدرس ... سوف نضيف أولاً الجزء الخاص بشاشة البحث ، سوف يكون بالشكل التالي : البحث عن الأشخاص الذين لديهم ( ComboBox1 ) ( ComboBox2 ) ( searchText ) حيث سيحتوي ComboBox1 على ( الرقم - الاسم - الهاتف ) أما الثاني فيحتوي على ( = - > - < ) ، وتوضع كلمة البحث في ال searchText . ومن ثم يوضع زر أمر بعرض نتائج البحث في الجدول . في حدث Form_Load سوف نضيف العناصر المطلوبة للقائمتين : كود : Combo1.AddItem "الرقم"ولا بد من التحكم في القائمة الثانية ، حيث لا يمكن التحكم بها إلا عند اختيار الرقم ، أما الاسم والهاتف فلا يمكن البحث ب < أو > في مثالنا هذا - يمكن استخدامها ولكن ليس في مثل هذا المثال - . ويتم ذلك من خلال الحدث Click للاداة Combo1 : كود : Private Sub Combo1_Click()كود : If searchText.Text = "" Thenكود : Dim fldname As Stringحيث نخزن في fldname الحقل الذي نبحث عنه ، op معامل البحث ، واخيراً lst تحدد إذا ما كنا سوف نضيف ' من أجل النصوص . والآن جاء دور تنفيذ جملة الاستعلام على قاعدة البيانات D1 ومن خلال الجدول الاضافي T2 : كود : Set T2 = D1.OpenRecordset(sql, dbOpenDynaset)كود : fill_Tableفي هذا السلسلة البسيطة من الدروس تعرفنا على اساسيات التعامل مع Dao من خلال فيجوال بيسك Visual Basic مع قواعد بيانات Access . وملف العمل موجود في المرفقات ... أسأل الله أن أكون قد وفقت في هذا الشرح البسيط ، فما كان فيه من صواب فمن الله ، وما كان من خطأ فمن نفسي والشيطان ، والله الهادي إلى سواء السبيل . والسلام عليكم ورحمة الله وبركاته . |