شرح برامج » لغات البرمجة »  الدرس السادس انشأ برنامجك بالفيجوال بيسك

  الدرس السادس انشأ برنامجك بالفيجوال بيسك  أضيف في: 6-12-1426هـ
الحلقة السادسة

العمليات الأساسية على السجلات للكائنات

وهي العمليات الأساسية على قاعدة البيانات باستخدام الكائن DAO

نراجع سريعا الخطوات السابقة
1 – تصميم النموذج ووضع مربعات النصوص اللازمة
2 – تعريف كائن قاعدة البيانات في مرجع البرنامج MICROSOFT DAO 3.51
3 – تعريف متغيرات تعبر عن كائنات قاعدة البيانات وهنا يفضل إنشاء ملف برمجة لتعريف متغير قاعدة البيانات وتعريف متغيرات تعبر عن الجداول حيث تضع متغير لكل جدول تريد استخدامه
4 – تقوم بفتح قاعدة البيانات في حدث Form_load للشاشة الرئيسية للبرنامج
وهيا بنا إلى العمليات الرئيسية على قاعدة البيانات


كود إضافة سجل جديد
لإضافة سجل جديد إلي قاعدة البيانات نكتب الكود التالي اضغط على زر إضافة مرتين يجب أولا فتح فتح الجدول المطوب التعامل معه باستخدام الجملة


CODE
CODE:
0001
0002
Set rs = db1.OpenRecordset(\"st_inf\", dbOpenDynaset)



2 – التأكد أن مربعات النصوص غير خالية باستخدام الكود التالي


CODE

CODE:
0001
0002
0003
0004
If Txt1.Text = \"\" or Txt2.Text = \"\" or Txt3.Text = \"\" or Txt4.Text <> \"\" or Txt5.text = \"\" Then
MsgBox \"يجب إدخال القيم في مربعات النص\"
Exit Sub
End If



3 – التأكد من أن الجدول به سجلات أم لا باستخدام الكود التالي بحيث انه إذا كان به سجلات يتم البحث عن السجل الحالي موجود أو غير موجود حتى نضمن عدم تكرار السجلات داخل الجدول فإذا كان الجدول خالي من السجلات يتم الانتقال لجملة لتعبئة السجل الجديد مباشرة

CODE

CODE:
0001
If rs.Recorcount = 0 then go to ss


2 – إذا كان يوجد سجلات داخل الجدول يتم التأكد هل رقم الطالب الحالي (السجل الحالي) موجود أم لا فإذا كان موجودا يتم تعديله أو أي إجراء آخر وإلا يذهب إلى العنوان ss لإضافة سجل جديد

CODE


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
rs.MoveFirst
Do While Not rs.EOF
If Not rs.EOF Then
If rs![st_no] = Val(Txt1) Then
r = MsgBox\"السجل موجود من قبل هل تريد التعديل\") ,vbYesNo\"تعديل\")
If r = vbYes Then
rs.Edit
rs![st_no] = Val(Txt1)
rs![st_name] = Txt2
rs![address] = Txt3
rs![b_date] = Txt4
rs![phone] = Txt5
rs.Update
MsgBox \"تم تعديل السجل \"
cmdclear_Click 'استدعاء حدث النقر على زر المسح
Else
Txt1.SetFocus
Exit Sub
End If
Exit Sub
End If
End If
rs.MoveNext
Loop



تعديل السجلات

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


CODE


CODE:
0001
0002
0003
0004
0005
0006
0007
rs.Edit
rs![st_no] = Val(Txt1)
rs![st_name] = Txt2
rs![address] = Txt3
rs![b_date] = Txt4
rs![phone] = Txt5
rs.Update



الكود الكامل لحفظ وتعديل السجلات (زر حفظ /تعديل )

هذا الكود للإضافة والتعديل معا وهذا الكود يمكن استخدامه بصورة عامة في أي زر إضافة


CODE

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
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
Dim r As String
If Txt1.Text = \"\" Or Txt2.Text = \"\" Or Txt3.Text = \"\" Or Txt4.Text = \"\" Or Txt5.Text = \"\" Then
MsgBox (\"من فضلك اكمل البيانات\")
Txt1.SetFocus
Exit Sub
End If
If rs.RecordCount = 0 Then GoTo Ss
rs.MoveFirst
Do While Not rs.EOF
If Not rs.EOF Then
If rs![st_no] = Val(Txt1) Then
r = MsgBox\"السجل موجود من قبل هل تريد التعديل\") ,vbYesNo\"تعديل\")
If r = vbYes Then
rs.Edit
rs![st_no] = Val(Txt1)
rs![st_name] = Txt2
rs![address] = Txt3
rs![b_date] = Txt4
rs![phone] = Txt5
rs.Update
MsgBox \"تم تعديل السجل \"
cmdclear_Click 'استدعاء حدث النقر على زر المسح
Else
Txt1.SetFocus
Exit Sub
End If
Exit Sub
End If
End If
rs.MoveNext
Loop
Ss:
rs.AddNew
rs![st_no] = Val(Txt1)
rs![st_name] = Txt2
rs![address] = Txt3
rs![b_date] = Txt4
rs![phone] = Txt5
rs.Update
cmdclear_Click 'استدعاء حدث النقر على زر المسح حذف سجل محدد


كود حذف سجل

لحذف سجل محدد يكتب الكود التالي


CODE

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
0029
0030
Dim r As Integer
r = MsgBox\"هل تريد حذف السجل الحالي\") ,vbYesNo,( \"الحذف\"
If rs.RecordCount = 0 Then
MsgBox \"لا يوجد سجلات داخل الجدول \"
Exit Sub
End If
If r = vbYes Then
Do While Not rs.EOF
If rs![st_no] = Val(Txt1) Then
rs.Delete
rs.Fields.Refresh
If rs.RecordCount = 0 Then
MsgBox \"لا يوجد سجلات داخل الجدول \"
Exit Sub
End If
rs.MoveFirst
Txt1.Text = rs![st_no]
Txt2.Text = rs![st_name]
Txt3.Text = rs![address]
Txt4.Text = rs![b_date]
Txt5.Text = rs![phone]
Exit Sub
End If
rs.MoveNext
Loop
Else
Txt1.SetFocus
Exit Sub
End If



كود البحث باستخدام جملة

للبحث عن سجل معين باستخدام جملة FINDfirst
للبحث عن سجل باستخدام جملة FIND يتم كتابة الكود التالي :
يتم تعريف متغير نصي في أعلى النموذج منطقة تعريف المتغيرات كالتالي

CODE

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
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
Dim name as string 'لاستخدام القيمة التي تخزن فيه للبحث عن السجل التالي



ثم يتم كتابة الكود التالي


CODE
Dim prompt As String
Dim title As String
Dim s As String
Dim y As String
Prompt = \"ادخل اسم الطالب\"
Title = \"البحث\"
y = InputBox(prompt, title) القيمة التي يدخلها المستخدم تخزن في المتغير
If Len(y) = 0 Then إذا كان طول المتغير يساوي صفر بمعنى أن المستخدم لم يدخل اسم للبحث
Exit Sub
Else
name = y
s = \"st_name=' \" + y + \" ' \"
rs.FindFirst s جملة البحث عن السجل الأول الذي يمثل الاسم الذي أدخله المستخدم
If rs.NoMatch Then تستخدم هذه الجملة للتحقق من العثور على الاسم أم لا
MsgBox \" الاسم غير موجود\"
Else
Txt1 = rs![st_no]
Txt2 = rs![st_name]
Txt3 = rs![address]
Txt4 = rs![b_date]
Txt5 = rs![phone]
End If
End If




كود البحث عن السجل التالي باستخدام FindNext

للبحث عن السجل التالي باستخدام جملة FIND


CODE
Dim s As String
s = \"st_name=' \" + nam + \" ' \"
rs.FindNext s
If rs.NoMatch Then
MsgBox \"انتهى البحث\"
Else
Txt1.Text = rs![st_no]
Txt2.Text = rs![st_name]
Txt3.Text = rs![address]
Txt4.Text = rs![b_date]
Txt5.Text = rs![phone]
End If




البحث باستخدام جملة DO WHILE

للبحث عن سجل باستخدام جملة DO WHILE نكتب الكود التالي :


CODE
Dim a As String
a = InputBox(\"ادخل اسم الطالب\",\"بحث\")
rs.MoveFirst
Do While Not rs.EOF 'كرر لنهاية الجدول
If rs![st_name] = a Then
Text1 = rs![St_no]
Text2 = rs![st_name]
Text3 = rs![ address]
Text4 = rs![b_date]
Text5 = rs![phone]
Exit Sub
End If
rs.MoveNext
Loop




التحرك إلى السجل الأول بجملة Movefirst

للتحرك إلى السجل الأول في الجدول وعرضه نكتب الكود التالي :


CODE
If rs.RecordCount = 0 Then
MsgBox \"لا يوجد سجلات داخل الجدول \"
Exit Sub
End If
rs.MoveFirst
Text1 = rs![St_no]
Text2 = rs![st_name]
Text3 = rs![ address]
Text4 = rs![b_date]
Text5 = rs![phone]



التحرك للسجل الأخيرباستخدام جملة MoveLast

للتحرك للسجل الأخير من الجدول وعرضه نكتب الكود التالي :


CODE

CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
If rs.RecordCount = 0 Then
MsgBox \"لا يوجد سجلات داخل الجدول \"
Exit Sub
End If
rs.MoveLast
Text1 = rs![St_no]
Text2 = rs![st_name]
Text3 = rs![ address]
Text4 = rs![b_date]
Text5 = rs![phone]



التحرك للسجل التالي باستخدام جملة MoveNext

للتحرك للسجل التالي من الجدول وعرضه نكتب الكود التالي :


CODE


CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
If rs.RecordCount = 0 Then
MsgBox \"لا يوجد سجلات داخل الجدول \"
Exit Sub
End If
rs.MoveNext
If rs.EOF Then
MsgBox \"هذا هو آخر سجل \"
Exit Sub
End If
Text1 = rs![St_no]
Text2 = rs![st_name]
Text3 = rs![ address]
Text4 = rs![b_date]
Text5 = rs![phone



التحرك للسجل السابق باستخدام جملة MovePrevious

للتحرك للسجل السابق من الجدول وعرضه نكتب الكود التالي :


CODE

CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
If rs.RecordCount = 0 Then
MsgBox \"لا يوجد سجلات داخل الجدول \"
Exit Sub
End If
rs.MovePrevious
If rs.BOF Then
MsgBox \"هذا هو أول سجل \"
Exit Sub
End If
Text1 = rs![St_no]
Text2 = rs![st_name]
Text3 = rs![address]
Text4 = rs![b_date]




والى اللقاء مع الحلقة القادمة مع الكائن الرهيب ADO
تحياتي للجميع

الكاتب: LaSer_26 انقر هنا لمراسلة LaSer_26 أنقر هنا للإنتقال إلى موقع LaSer_26 إضافة للمفضلة إضافة لمفضلة Google إضافة لمفضلة Delicious إضافة لمفضلة Digg إضافة لمفضلة Facebook
 



 

المنتديات

الأذكار

ألعاب الأدعية الصحيحة
راديو وصفات طبخ
مواقع تسوق مكتبة القصص