مقدمة :
هل
سبق لك استخدام برنامج Excel ؟
لا
شك أنه يشبه جدول كبير للبيانات ، ولكن بعض الوظائف دمجت بالبرنامج بحيث يمكن
إجراء عمليات حسابية وغيرها علي الصفوف والأعمدة ، بل والخلايا ، فضلاً عن أن
برنامج اكسل Excel يمكنه تقديم وظائف أخري مثل الرسم والتحكم في العرض .
الواقع
أن أداة الشبكة يمكن تشبيهها بجدول اكسل Excel ولكن بلا وظائف ، وتوفر فيجوال بيسك لها خواص و أساليب برمجية
تمكنك من التحكم في خلايا والصفوف الشبكة .
والواقع
أن ميكروسوفت أنتجت أول أداة للشبكة مصاحب للإصدار الرابع من فيجوال بيسك باسم Grid ، ثم أضافت في
الإصدار الخامس Msflexgrid الذي أضاف خواص أكثر للأداة ، و كذلك أضافت ميكروسوفت الأداة Mshflexgrid التي تمتعت بخواص
أكثر للتعامل مع قواعد البيانات .
إدراج
أداة الشبكة :
علي النموذج |
في نافذة الأدوات |
|
|
أهم
خواص الشبكة :
وظيفتها |
قيمها |
اسم
الخاصية |
تحدد
عدد أعمدة الشبكة |
عدد |
Cols |
تحدد
عدد صفوف الشبكة |
عدد |
Rows |
تظهر
البيانات التي تحملها أداة قاعدة البيانات Data |
اسم
أداة البيانات المرتبطة بقاعدة البيانات مثل الأداةData |
DataSource |
0 عدم إتاحة 1
تغيير اتساع الصفوف أثناء التنفيذ. 2
تغيير اتساع الأعمدة أثناء التنفيذ 3
تغيير اتساع الصفوف والأعمدة أثناء التنفيذ |
0 ، 1 ، 2 ، 3 |
AllowUserResizing |
تحدد
عدد الأعمدة الثابتة |
عدد |
FixedCols |
تحدد
عدد الصفوف الثابتة |
عدد |
FixedRows |
0 بدون شريط تمرير 1
شريط تمرير أفقي 2
شريط تمرير رأسي 3
شريطي تمرير أفقي ورأسي |
0 ، 2 ، 3 |
ScrollBars |
كما
تتمتع أداة الشبكة بنفس الخصائص السابقة مثل الظهور Visible و الخط ، و غيرها
.
أهم
الطرق Methods و الأوامر:
1-
دخول الخلية EnterCell
وهو
حدث لدي نقر إحدى الخلايا و التعامل معها .
2- حدث
ترك الخلية LeaveCell
و
يحدث لدي ترك المستخدم للخلية .
3- حدث
تغير الصفوف أو الأعمدة RowColChange
و
يحدث لدي تغير عدد أعمدة الشبكة أو صفوفها من حيث الزيادة أو النقصان .
4- منظومة
النصوص TextArray
5- و
هي ترقم الخلايا من 0 إلي آخر الخلايا فمثلا العد يبدأ من 0 إلي آخر خلية في
الشبكة .
6- مصفوفة
أو جدول النصوص TextMatrix:
وهو
يحدد الخلية برقمها في الصف والعمود فمثلاُ MsflexGrid1.TextMatrix(2,5) هي الخلية التي
تقع في الصف الثاني ، والعمود
الخامس منه ، حيث ان رقم أول صف وأول عمود هو 0 .
7- RemoveItem
وهو
يحذف صف معين
الأداة
Data :
علي
النموذج |
في
نافذة الأدوات |
|
|
تستخدم
أداة الشبكة في الارتباط بقاعدة بيانات سبق إعدادها ، و بالتالي فهي قناة لتوصيل
البيانات لأدوات أخري .
إنشاء
قاعدة بيانات :
هناك
طريقتين لإنشاء قاعدة بيانات جديدة الأولي باستخدام فيجوال بيسك ، والثانية
باستخدام برنامج Access وسوف نعرض طريقة إنشاء قاعدة البيانات بالطريقة الإخيرة
طريقة
برنامج أكسس :
افتح
برنامج Access حتي تظهر لك
النافذة التالية :
اختر
قاعدة بيانات فارغة
انقر
الزر إنشاء ثم تظهر لك النافذة التالية :
اختر
جدول بإنشاء البيانات
في
رأس الأعمدة – الحقول – إعد تسميتها كما يلي :
رقم
الحفيظة –اسم الموظف – تاريخ الميلاد – الوظيفة – العنوان – الراتب
انقر
زر الحفظ فتظهر النافذة التالية :
الآن
لديك قاعدة بيانات اسمها MyDataBase و جدول اسمه MyTable
الخاصية
Connect :
انقر
نافذة الخواص حتي تجد الخاصية Connect ثم انقرها و اختر نوع قاعدة البيانات :
حيث
بإمكانك ربط الأداة بآي نوع تراه
بالجدول حتي Fox Pro و لكن قاعدة البيانات لها مشكلة مع Access 2000 والسبب أن فيجوال بيسك لا يدعم هذا
المحرك و لكنه يدعم المحرك Jet 2 وبالتالي يجب أن تتبع الخطوات التالية لتجعل فيجوال بيسك يتعامل
مع قاعدة بيانات Access 2000
انقر
قائمة أدوات
-
اختر أدوات مساعدة لقاعدة البيانات .
-
اختر تحويل قاعدة بيانات
-
اختر إلي إصدار سابق من قاعدة بيانات Access
.
ثم احفظ
الملف مع ملاحظة حفظ الملف باسم جديد
لتعد
للخاصية Connect ، فهي تحدد نوع قاعدة البيانات ، فمثلاُ يمكنك
أن تختار اكسل أو غيرها من قواعد البيانات ، وفي حالتنا سوف نختار نوع قاعدة
البيانات Access .
الخاصية DataBaseName
:
هذه
الخاصية تحتفظ بموضع أو عنوان قاعدة البيانات حيث لدي نقر (...) تظهر لك نافذة فتح
انقر قاعدة البيانات وهي في حالتنا MyDataBase ثم موافق سوف تجد أن
الخاصية أصبحت قيمتها :
C:\My Documents\mydatabase.mdb
الخاصية RecordSetType :
و تأخذ
ثلاثة قيم هم 0 و تعني جدول Table ، 1 و تعني DynaSet ، 2 و تعني SnapShot و من الضروري أن تحدد النوع هنا :
العيوب |
المزايا |
نوع السجل |
لا ينال إلا جدولاً واحداً |
- يمكنك استخدام فهرس
لتحديد العرض ويظهر التحديثات التي ينفذها الأخرون فوراً |
Table |
لا يستخدم فهرساً ولا تظهر التعديلات التي ينفذها الآخرون فوراً |
- يعمل مع جدول واحد أو عدة جداول بأكملها أو بقسم منها . |
Dynaset |
صعب تحديثه و يستخدم قدر كبير من الذاكرة . |
سريع لأنه يعمل مع نسخة من البيانات |
snapshot |
و في
مثالنا الحالي تكون قيمة الخاصية هو 0 أى أننا نريد جدول .
لذلك
نضبط الخاصية RecordSource علي جدول فلدي نقر قيمتها نجد اسم الجدول MyTable
.
تلك كانت
أهم الخواص و لكن كيف نعرض البيانات
؟
الواقع
أن الأداة Data هي أداة لربط إحدي الأدوات بحقل من حقول قاعدة
البيانات ، لو تفحصنا بعض الأدوات القياسية التي تجدها في نافذة الأدوات وهي :
أ-
خانة التحقق CheckBox
ب- الخانة المركبة ComboBox
ت- الصورة Image .
ث- العنوان Label .
ج- القائمة ListBox .
ح- PictureBox .
خ- خانة النص TextBox
وهناك أيضاُ أدوات يمكنك إضافتها وهي :
أ-
عرض البيانات DataList .
ب- DataCombo
ت- DataGrid
ث- Microsoft Flex Grid
ج- Microsoft Hierarchical FlexGrid
ح- خانة النص الغني RichTextBox
خ- Microsoft Chart .
وحتي تربط أى من تلك الأدوات بقاعدة البيانات ، فقم بضبط الخاصيتين التاليتين لهم :
ضع اسم الأداة Data وليكن Data1 |
DataSource |
اختر منه اسم الحقل المطلوب أن تعرضه الأداة . |
DataField |
و لكن اضبط أولاُ الخاصية DataSource علي أداة ربط البيانات Data ثم انتقل لخانة النص textbox الخاصية DataField
ولدي نقرك لقيمتها تظهر كل حقول الجدول ثم قم باختيار اسم الحقل الذي سوف تعرض او
تعدل بياناته .
ولربط اداة الشبكة MsflexGrid قم بضبط الخاصية DataSource
علي اسم أداة ربط البيانات Data ،
وأهم ما يميز أداة الشبكة هو أنها لا تحتاج اكثر من ذلك فحين تشغل البرنامج تشاهد
بيانات قاعدة البيانات .ولكن لايمكنك تصحيح البيانات .
الأداة DataGrid
وهي لا تستخدم مع أداة ربط البيانات Data لأنها لا تطابقها ولكنها
تستخدم أداة أخرى هي Adodc و
تتميز بأنها تفتح قناة مزدوجة للتعديل و الإضافة و الحذف مباشرة مع قاعدة البيانات
.
التحكم في الأداة Data
الأوامر
· تحرك للأول MoveFirst : ويعني تحرك للسجل الأول.
· تحرك للآخر MoveLast : تحرك للسجل الأخير .
· تحرك للتالي MoveNext : تحرك للسجل التالي .
· تحرك للسابق MovePrevious : تحرك للسجل السابق .
· حذف سجل Delete : حذف السجل الحالي
· تعديل السجل الحالي Update
· إضافة سجل جديد AddNew
· عدد السجلات الحالية RecordCount
· ابحث عن أول حدوث FindFirst
· ابحث عن آخر حدوث FindLast
· ابحث عن الحدوث التالي للسجل الحالي FindNext
· ابحث عن الحدوث السابق للسجل الحالي FindPrevious
· لا يوجد شئ في البحث NoMatch .
· علم السجل معين Bookmark
·
الصيغة :
Data1.Recordset. MoveFirst
Data1.Recordset. MoveLast
Data1.Recordset.MoveNext
Data1.Recordset. MovePrevious
Data1.Recordset.Delete
Data1.Recordset.AddNew
Data1.Recordset.RecordCount
Data1.Recordset.FindFirst
Data1.Recordset.FindLast
Data1.Recordset.FindPrevious
مثال :
أنشئ نموذج للاتصال مع قاعدة بيانات MyDataBase التي تضم جدول البيانات MyTable
، والجدول يحوي الحقول التالية :
رقم حفيظة النفوس
اسم الموظف
تاريخ الميلاد
الوظيفة
العنوان
الراتب
ثم أنشئ نموذج و أضف أدوات عنوان و أدوات نص و 3 أزرار أوامر وأداة Data كما يلي:
البرنامج السابق سوف يمكنك من البحث في أى حقل بنقر عنوانه
الآن
انسخ الشفرة التالية
Private
Sub Command1_Click()
t
= Text7.Text
If
t = "" Then Exit Sub
prev
= Data1.Recordset.Bookmark
aa
= Text8.Text
t
= "[" & aa & "] like " & Chr(34) &
"*" & t & "*" & Chr(34)
'Data1.Recordset.MoveFirst
Data1.Recordset.FindFirst
t
If
Data1.Recordset.NoMatch Then
Data1.Recordset.Bookmark
= prev
MsgBox ("لم أجد ما
تبحث عنه")
End
If
End
Sub
Private
Sub Command2_Click()
Data1.Recordset.AddNew
End
Sub
Private
Sub Command3_Click()
Data1.Recordset.Delete
End
Sub
Private
Sub Label1_Click()
Text8.Text
= Label1.Caption
End
Sub
Private
Sub Label2_Click()
Text8.Text
= Label2.Caption
End
Sub
Private
Sub Label3_Click()
Text8.Text
= Label3.Caption
End
Sub
Private
Sub Label4_Click()
Text8.Text
= Label4.Caption
End
Sub
Private
Sub Label5_Click()
Text8.Text
= Label5.Caption
End
Sub
Private
Sub Label6_Click()
Text8.Text
= Label6.Caption
End
Sub