التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 1 أصوات - بمعدل 1
  • 1
  • 2
  • 3
  • 4
  • 5
فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .

المقدمة :
في الدرس السابق تعلمنا طرق انشاء وربط قاعدة البيانات . وكيفية التعامل معها .
في هذا الدرس سوف نتعرف على أحد اشهر أنواع جداول العرض ، وهو 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)
سوف نقوم الآن بعمل اجراء باسم fill_Table مهمته رسم الجدول ووضع بيانات T2 في داخله .

كود :
Private Sub fill_Table()
End Sub

في هذا الاجراء ومهمتنا الأولى قبل ادخال البيانات هي تصميم الشكل العام للجدول ، فإذا اردنا الكتابة في مربع 0 و 0 مثلاً ، فإننا نقوم بالتالي :
كود :
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "القيمة"
وكذلك مع أي صف في أي عمود ، بشرط أن يكون هذا العمود موجوداً أصلاً .
في بداية تشكيل الجدول ، فبعد مسح الجدول بالكامل ، سوف نجعل عدد الصفوف = 1 وهو صف العنوان فقط ، وعدد الأعمدة 3 ( الرقم - الاسم - الهاتف ) :
MSFlexGrid1.Clear
MSFlexGrid1.Cols = 3
MSFlexGrid1.Rows = 1
ومن ثم ننتقل بين الأعمدة في الصف الأول لوضع رؤوس الجداول :
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "الرقم"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "الاسم"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "الهاتف"

والآن جاء دور العمل مع قاعدة البيانات ، لا تنس أننا سوف نتعامل الآن مع T2 لأننا سوف نتنقل بينها دون أن نؤثر على العرض الرئيسي للبرنامج .
الخطوة الأولى هي معرفة عدد السجلات ، وهو عدد الصفوف في الجدول + 1 ( من أجل صف العنوان ) .

كود :
If T2.RecordCount < 1 Then Exit Sub
T2.MoveLast
T2.MoveFirst
N = T2.RecordCount

MSFlexGrid1.Rows = N + 1

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

كود :
For i = 1 To N
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = T2!nu
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = T2!Fn
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = T2!Te
T2.MoveNext
Next i
أخيراً سوف نقوم بتعديل عرض العمودين الأول والثاني ليستطيعا استيعاب مزيد من البيانات في منطقة العرض :


كود :
MSFlexGrid1.ColWidth(0) = 500

MSFlexGrid1.ColWidth(1) = 1500

تابع للجدول MSFlexGrid .

بالنسبة لأحداث Events الجدول MSFlexGrid فأغلبها مثل الأدوات العادية مثل الحدث Click و DblClick ، ولعرض محتوى الخلية Cell عند الضغط عليها مرتين بالماوس نكتب :


كود :
Private Sub MSFlexGrid1_DblClick()

MsgBox MSFlexGrid1.Text

End Sub

وهناك بعض الأحداث الجديدة مثل EnterCell ، وينطلق هذا الحدث في كل مرة تضبط فيها خاصيتي Col , Row ليشكل تقاطعهما خلية جديدة سواء أكان ذلك من خلال الماس أو من خلال أوامر الكود ، ومقابلة الحدث LeaveCell وهو يحدث عندما تترك خلية .

أحداث أخرى مثل GetFocus و lostFocus تنطلق عندما يصل التركيز ( التحديد ) إلى الاداة أي بمعنى ان تصبح الأداة نشطة سواء من خلال استخدام مفتاح Tap أو من خلال اختيار الأداة بالماوس . أيضاً حدث RowColChange عند تغيير الصف أو العمود ، و SelChange عند تغيير التحديد . Scroll عند استخدام ال Scroll للتنقل بين صفوف الجدول أو اعمدته .

هناك أحداث Drag وهي مشتركة بين اغلب الادوات وهي الخاصة بعمليات سحب الأدوات أو السحب عليها ، أحداث الماوس Mouse أيضاً مشتركة وهي الخاصة بمرور الماوس أو الضغط - الرفع بأزراره المختلفة .

** مثال : كيفية تلوين صف بكامله في الجدول :
لعمل ذلك نستخدم الخاصية Cellbackcolor ، فمثلاً لو اردنا تحديد الصف رقم 2 باللون الأحمر ، فإننا نكتب الأمر التالي :

كود :
MSFlexGrid1.Row = 2

For i = 0 To 2

[SIZE=3]MSFlexGrid1.Col = i[/SIZE]

MSFlexGrid1.CellBackColor = QBColor(12)
Next i
وفي زر الامر الخاص بالتلوين ، سوف نقوم بقراءة رقم الصف المطلوب من خلال Input Box ، ونتأكد من أن الرقم لا يتجاوز الحد الأقصى من الصفوف ، ومن ثم نكتب الأوامر السابقة ، وبذلك يصبح الكود الاجمالي بالشكل التالي :

كود :
Dim x As Integer

x = Val(InputBox("ادخل رقماً يتراوح بين 0 و " & MSFlexGrid1.Rows - 1, "تحديد باللون الأحمر"))

If x < 0 Or x > (MSFlexGrid1.Rows - 1) Then
MsgBox "قيمة صف خاطئ !!!"
Exit Sub
End If
MSFlexGrid1.Row = x
For i = 0 To 2
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = QBColor(12)

Next i



وبنفس الطريقة إذا اردنا تحديد عمود ، حيث سنتقل بين الصفوف المختلفة .

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

والسلام عليكم ورحمة الله وبركاته .
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع - بواسطة Raggi Tech - 14-10-12, 02:10 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة لمعرفة عدد السجلات في قاعدة البيانات princeofislam 2 2,753 18-01-24, 11:34 AM
آخر رد: علي جابر
  برنامج لمتابعة محل بيع الجوالات اكثر من رائع بقاعدة بيانات جيدة derbaliammar 14 11,809 04-03-23, 02:24 AM
آخر رد: tighrmte
  طريقة تشغيل فيجوال بيسك6 على وندوز7 ahmed3d 6 5,606 05-12-22, 06:49 AM
آخر رد: Ergheegh2022
  تعلم كيفية حفظ و أسترجاع الصورة فى قاعدة بيانات أكسس باستخدام الكائن Stream object أحمد مناع 12 17,102 06-11-21, 02:16 PM
آخر رد: Sawsaw
  كيفية التعامل مع دوال الوقت و التاريخ و كيفية تنسيقهما فى الفجوال بيسك 6 the viper 9 11,289 22-11-18, 01:13 PM
آخر رد: next
  استفسار ربط قاعدة بيانات بالفيجوال 6 محمود عمار2 1 2,408 14-10-18, 02:39 AM
آخر رد: Amir_Alzubidy
  مساعدة في طباعة صوره من قاعدة بيانات basma123 0 2,592 26-09-14, 03:00 PM
آخر رد: basma123
  طلب شرح اخذ نسخة احتياطية من قاعدة البيانات DIGTAL 2 4,531 31-07-13, 03:14 AM
آخر رد: طارق بيتا
  الاتصال بقاعدة بيانات Access على الشبكة المحلية أحمد مناع 1 4,424 18-07-13, 07:16 PM
آخر رد: Reme
  شرح للمتغيرات و الثوابت و المعاملات في الفيجول بيسك Ahmad Jawad 5 63,317 12-06-13, 01:14 AM
آخر رد: بلحسين الدين

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم