الحلقة الرابعة
قواعد بيانات فيجوال بيسك
للتعامل مع قواعد البيانات في الفيجوال بيسك يتم ذلك بطريقتين
الطريقة الأولى: عن طريق أدوات قواعد البيانات حيث يوجد مجموعة من الأدوات التي تستخدم للربط بين أدوات البرنامج المنشأ بالفيجوال بيسك وقاعدة البيانات المنشأة بواسطة برنامج قواعد البيانات مثل الأكسس حيث يوجد ثلاث أدوات للتعامل مع قاعدة البيانات
1 - أداة قاعدة البيانات Data Control
2 - أداة الوصول لقاعدة البيانات عن بعد Remote Data Control
3 - أداة Active X Data Control ( ِADODC)
وسوف نتعرض بالشرح للأداة الأولى والثالثة
بالمناسبة الأداة الثالثة بها نفس إمكانيات الأداة الثانية وأكثر لذلك سنكتفي بالأداة الأولى والأداة الثالثة
أولا : استخدام أداة قاعدة البيانات Data Control
1 - صمم النموذج التالي

2 - احفظ المشروع الجديد في مجلد باسم برنامج الطلاب في أي مكان وليكن على القرص الصلب C
3 - صمم قاعدة البيانات بالبرنامج ميكروسوفت أكسس انشأ قاعدة بيانات جديدة باسم Students واحفظها في نفس المجلد برنامج الطلاب
4 - أنشا الجدول التالي باسم St_inf وبه الحقول التالية :

5 - اضغط على أداة قاعدة البيانات لتحديدها ثم اضبط مجموعة الخصائص التالية :

وهناك بعض الخصائص سنتعرض لها بالتفصيل بعد ذلك بعد ضبط الخصائص لقاعدة البيانات نأتي للخطوة التالية
6 - ربط الأدوات مع حقول قاعدة البيانات مثل مربعات النصوص والعناوين والصور حسب الأداة التي تريد ربطها مع الحقل وسنربط هنا مربعات النصوص فقط
ربط مربعات النصوص
اضغط على مربع النصوص الأول رقم الطالب لتحديده ثم اضبط الخصائص التالية :

ملاحظة هامة جدا: وأنا افضل ترك مربعات النصوص بدون ربطها لأن الربط يسبب بعض المشاكل ولكن نفذ الخطوات التالية ثم أزل الأرتباط بعد ذلك عند التعامل مع الكود
نفذ الخصائص السابقة على كل مربعات النصوص في النموذج فإذا تم فتح النموذج سيظهر أو سجل داخل مربعات النصوص كما يظهر بالصورة التالية

أكواد الأزرار
قبل كتابة الكود يجب أن تجعل خاصية Data source و data Filed فارغة لكل مربعات النصوص
يمكننا إضافة إجراء لمسح مربعات النصوص افتح قائمة Tools واختار Add procedure
اكتب اسم الأجراء وليكن dclear واختار Sub من Type و private من scope

واكتب في الإجراء الكود التالي :
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
|
Txt1 = \"\"
Txt2 = \"\"
Txt3 = \"\"
Txt4 = \"\"
Txt5 = \"\"
Txt1.setfocus
|
أولا : كود زر اضافة : اضغط مرتين على زر اضافة واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
|
Data1.Recordset.AddNew
Data1.Recordset![st_no] = Val(Txt1.Text)
Data1.Recordset![st_name] = Txt2.Text
Data1.Recordset![address] = Txt3.Text
Data1.Recordset![b_date] = Txt4.Text
Data1.Recordset![phone] = Txt5.Text
Data1.Recordset.Update
MsgBox \"تم حفظ السجل\", vbMsgBoxRight + vbMsgBoxRtlReading,\"حفظ\"
Cmdclear
Data1.Refresh
|
ثانيا : كود زر تعديل : اضغط مرتين على زر تعديل واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
|
Data1.Recordset.Edit
Data1.Recordset![st_no] = Val(Txt1.Text)
Data1.Recordset![st_name] = Txt2.Text
Data1.Recordset![address] = Txt3.Text
Data1.Recordset![b_date] = Txt4.Text
Data1.Recordset![phone] = Txt5.Text
Data1.Recordset.Update
MsgBox \"تم تعديل السجل\", vbMsgBoxRight + vbMsgBoxRtlReading,\"تعديل\"
Cmdclear
Data1.Refresh
|
ثالثا : كود زر عرض : اضغط مرتين على زر عرض واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
|
Data1.Refresh
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
|
رابعا : كود زر مسح : اضغط مرتين على زر مسح واكتب الكود التالي
خامسا : كود زر الأول : اضغط مرتين على زر الأول واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
|
Data1.Recordset.MoveFirst
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
|
[/CODE]
سادسا : كود زر الأخير : اضغط مرتين على زر الأخير واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
|
Data1.Recordset.MoveLast
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
|
سابعا : كود زر التالي : اضغط مرتين على زر التالي واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
|
On Error GoTo err:
If Data1.Recordset.EOF Then
MsgBox \"هذا آخر سجل\"
End If
Data1.Recordset.MoveNext
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
err:
Exit Sub
|
ثامنا : كود زر السابق : اضغط مرتين على زر السابق واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
|
On Error GoTo err:
If Data1.Recordset.BOF Then
MsgBox \"هذا أول سجل\"
End If
Data1.Recordset.MovePrevious
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
err:
Exit Sub
|
تاسعا : كود زر بحث : اضغط مرتين على زر بحث واكتب الكود التالي
سنعرف متغير عام على مستوى النموذج باسم Nam
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
|
On Error GoTo err:
Dim prompt, title, s, y As String
prompt = \"أدخل اسم الطالب\"
title = \"بحث\"
y = InputBox(prompt, title)
If Len(y) = 0 Then
Exit Sub
Else
nam = y
s = \"st_name='\" + y + \"'\"
Data1.Recordset.FindFirst s
If Data1.Recordset.NoMatch = True Then
MsgBox \"هذا الطالب غير مسجل\"
Else
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
End If
err:
Exit Sub
End If
|
عاشرا : كود زر البحث التالي : اضغط مرتين على زر البحث التالي واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
|
Dim s As String
s = \"st_name='\" + nam + \"'\"
Data1.Recordset.FindNext s
If Data1.Recordset.NoMatch = True Then
MsgBox \"انتهى البحث\"
Else
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
End If
|
حادي عشر : كود زر حذف : اضغط مرتين على زر حذف واكتب الكود التالي
CODE: |
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
|
Dim r As Integer
On Error GoTo err:
r = MsgBox(\"هل تريد بالتأكيد حذف السجل\", vbYesNo, \"حذف\")
If r = vbYes Then
Data1.Recordset.Delete
Data1.Recordset.MoveNext
Txt1.Text = Data1.Recordset![st_no]
Txt2.Text = Data1.Recordset![st_name]
Txt3.Text = Data1.Recordset![address]
Txt4.Text = Data1.Recordset![b_date]
Txt5.Text = Data1.Recordset![phone]
MsgBox (\"تم حذف السجل\")
Data1.Refresh
Else
Exit Sub
End If
err:
Exit Sub
|
|