درس انشاء برنامج بالفيجوال بيسك





قواعد بيانات فيجوال بيسك

للتعامل مع قواعد البيانات في الفيجوال بيسك يتم ذلك بطريقتين

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

وسوف نتعرض بالشرح للأداة الأولى والثالثة
بالمناسبة الأداة الثالثة بها نفس إمكانيات الأداة الثانية وأكثر لذلك سنكتفي بالأداة الأولى والأداة الثالثة

أولا : استخدام أداة قاعدة البيانات Data Control

1 - صمم النموذج التالي

http://www.arabteam2000.com/picload/Files/NasserLessons20.jpg
2 - احفظ المشروع الجديد في مجلد باسم برنامج الطلاب في أي مكان وليكن على القرص الصلب C
3 - صمم قاعدة البيانات بالبرنامج ميكروسوفت أكسس انشأ قاعدة بيانات جديدة باسم Students واحفظها في نفس المجلد برنامج الطلاب
4 - أنشا الجدول التالي باسم St_inf وبه الحقول التالية :

http://www.arabteam2000.com/picload/Files/NasserLessons21.jpg
5 - اضغط على أداة قاعدة البيانات لتحديدها ثم اضبط مجموعة الخصائص التالية :

http://www.arabteam2000.com/picload/Files/NasserLessons22.jpg
وهناك بعض الخصائص سنتعرض لها بالتفصيل بعد ذلك بعد ضبط الخصائص لقاعدة البيانات نأتي للخطوة التالية
6 - ربط الأدوات مع حقول قاعدة البيانات مثل مربعات النصوص والعناوين والصور حسب الأداة التي تريد ربطها مع الحقل وسنربط هنا مربعات النصوص فقط
ربط مربعات النصوص
اضغط على مربع النصوص الأول رقم الطالب لتحديده ثم اضبط الخصائص التالية :

http://www.arabteam2000.com/picload/Files/NasserLessons23.jpg
ملاحظة هامة جدا: وأنا افضل ترك مربعات النصوص بدون ربطها لأن الربط يسبب بعض المشاكل ولكن نفذ الخطوات التالية ثم أزل الأرتباط بعد ذلك عند التعامل مع الكود
نفذ الخصائص السابقة على كل مربعات النصوص في النموذج فإذا تم فتح النموذج سيظهر أو سجل داخل مربعات النصوص كما يظهر بالصورة التالية

http://www.arabteam2000.com/picload/Files/NasserLessons24.jpg

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

http://www.arabteam2000.com/picload/Files/NasserLessons25.jpg

واكتب في الإجراء الكود التالي :

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
Cmdclear





خامسا : كود زر الأول : اضغط مرتين على زر الأول واكتب الكود التالي

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


هناك تعليق واحد:

 

دروس Copyright © 2011 | Template design by O Pregador | Powered by Blogger Templates