Make your own free website on Tripod.com

أداة الشبكة

 

مقدمة :

هل سبق لك استخدام برنامج 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 :

علي النموذج

في نافذة الأدوات

 

تستخدم أداة الشبكة في الارتباط بقاعدة بيانات سبق إعدادها ، و بالتالي فهي قناة لتوصيل البيانات لأدوات أخري .

 

ضبط الأداة 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