nasser50001

أنشأ مشروعك بالفيجوال بيسك 6 من الألف إلى الياء

216 ردود في هذا الموضوع

أخي عبد الله انت فين

أخوك ناصر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي عبد الله جزاك الله خير

ما هذه الروعة ....... ما هذا الجمال

انا شكيت أن هذه هي الدروس التي وضعتها بعد هذا التنسيق الرائع

لك تحيلتي اخي الكريم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة السادسة

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

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

نراجع سريعا الخطوات السابقة

1 – تصميم النموذج ووضع مربعات النصوص اللازمة

2 – تعريف كائن قاعدة البيانات في مرجع البرنامج MICROSOFT DAO 3.51

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

4 – تقوم بفتح قاعدة البيانات في حدث Form_load للشاشة الرئيسية للبرنامج

وهيا بنا إلى العمليات الرئيسية على قاعدة البيانات

كود إضافة سجل جديد

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

Set rs = db1.OpenRecordset("st_inf", dbOpenDynaset)

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

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

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

If  rs.Recorcount = 0 then go to ss

2 – إذا كان يوجد سجلات داخل الجدول يتم التأكد هل رقم الطالب الحالي (السجل الحالي) موجود أم لا فإذا كان موجودا يتم تعديله أو أي إجراء آخر وإلا يذهب إلى العنوان 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

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

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

rs.Edit
rs![st_no] = Val(Txt1)      
rs![st_name] = Txt2
rs![address] = Txt3
rs![b_date] = Txt4
rs![phone] = Txt5
rs.Update

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

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

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          'استدعاء حدث النقر على زر المسح حذف سجل محدد

كود حذف سجل

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

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 يتم كتابة الكود التالي :

يتم تعريف متغير نصي في أعلى النموذج منطقة تعريف المتغيرات كالتالي

Dim name as string      'لاستخدام القيمة التي تخزن فيه للبحث عن السجل التالي

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

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

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 نكتب الكود التالي :

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

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

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

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

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

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

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

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

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]

مرفق مثال عملي على الكائن DAO

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

تحياتي للجميع

أخوكم ناصر

الحلقة السادسة.rar

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخي عبد الله احتاج تدخلك بالله

الحقنييييييييييييييييييييييييييييييييييييييييي

الحلقة كاملة هنا

الحلقة السادسة.doc

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم اخي ناصر

لحلقات مفيدة كتييييييييييييييييير وممتعة والله ويارب تتواصل في كتابتها ان شاء الله ولك عظيم الاجر

مع تمنياتي بالتوفيق

عاشقة الاختراع :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشــاء الله عليك

مشكووور أخي ناصر

موضوعك بصراحه أفادني كثيرا خصوصنا أنني مبتدأ ،،

وأتمنى التواصل ..

وإلى الامام دائمــا ،،

تحياتي لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أختى five star شكرا جزيلا دا من ذوقك

أخي البرنس نورت المنتدى وشكرا جزيلا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة السابعة

التعامل مع الكائن ActiveX Data Object (ADO)

حيث حان الوقت لندخل لعالم البرمجة الحقيقية حقيقية أخواني ستجدوا مع هذا الكائن الرائع المتعة الكاملة وحان الآن أيضا للتحول من الكائنات القديمة DAO,RDO إلى هذا الكائن الذي به جميع الإمكانيات التي بالكائنين السابقين وأكثر 0

وسبب التأخر في هذه الحلقة أني كنت سأكتب موضوعين قبل هذا الموضوع كتهيئة لهذا الكائن فكنت سأتناول مجموعة من الأدوات التي تتعامل مع قاعدة البيانات مثل Data list و data Combo وdata Grid و Flex grid وكذلك كنت سأخصص حلقة عن جمل SQL داخل الفيجوال ولكن قلت نبدأ بالكائن ثم نخصص هاتين الحلقتين للكائن ADO فهيا بنا الى هذا الكائن .

1_21220052331410.4810755.JPG

خطوات التعامل مع الكائنات ADO

الخطوة الأولى :

تعريف الكائنات ADO مثلما تم مع الكائن DAO في مرجع البرنامج References كالتالي :

1 - اضغط قائمة Project واختار References

2 – من الشاشة التي تظهر أختار الكائنين

MICROSOFT ACTIVE X DATA OBJECT 2.5 LIBRARY

MICROSOFT ACTIVE X DATA OBJECT RECORDSET 2.5 LIBRARY

2_21220052335230.9105188.JPG

الخطوة الثانية :

إنشاء قاعدة البيانات عن طريق برنامج MICROSOFT ACCESSأو برنامج SQL Server أو برنامج Oracle وسوف نتناول كيفية التعامل مع الأنواع الثلاث وهذه هي الميزة الرائعة للكائن ADO والذي يمكنك من التعامل مع عدد ضحم من برامج قواعد البيانات الضخمة .

الخطوة الثالثة :

تصميم النموذج بوضع مربعات نصوص تعبر عن حقول الجدول المراد استخدامه ووضع أزرار الأوامر المراد استخدامها في النموذج مثل ( إضافة – بحث 0000) كما صنعنا في شاشة بيانات الطلاب .

الخطوة الرابعة

تعريف متغيرات تعبر عن قاعدة البيانات والجدول التي ستستخدمها ويفضل أنشاء ملف برمجة Module لنعرف فيه كائن قاعدة البيانات كالتالي :

public db as New ADODB.Connection

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

Dim rscust As New ADODB.Recordset
dim rsitem as New ADODB.Recordset

وهكذا مع كل جدول سنستخدمه .

الخطوة الخامسة

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

أولا : كود فتح قاعدة البيانات أكسس

dim s as string
S = "provider =microsoft.jet.OLEDB.4.0;”
S = s & "data source=" & App.Path & "\students.mdb"
db.ConnectionString = s                  
db.Open

ملاحظات على الكود السابق

1 – المزود Provider وهو اسم السائق الخاص بكائن الاتصال بقاعدة البيانات OLEDB والذي سيستخدمه الكائن ADO للوصول لقاعدة البيانات وهو هنا مع برنامج ميكروسوفت أكسس يكون microsoft.jet.OLEDB.4.0

2 – Data Source يوضع فيه مسار قاعدة البيانات حيث يمكنك وضع المسار الكامل لقاعدة البيانات مثل "c:\data base\students.mdb" أو استخدام الدالة App.path إذا كانت قاعدة البيانات مخزنة في نفس مجلد البرنامج .

3 – Connectionstring هي الجملة التي تزود لقاعدة البيانات المزود المستخدم ومسار واسم قاعدة البيانات ويمكنك كتابة الجملة مباشرة كالتالي

db.connectionstring = "provider = microsoft.jet.OLEDB.4.0;” & "data source=" & App.Path & "\students.mdb"

4 – ثم بعد ذلك يتم فتح قاعدة البيانات باستخدام الطريقة Open

ثانيا : كود فتح قاعدة البيانات SQL Server

Dim S As String
S = "provider = SQLOLEDB.1;user ID = sa;password =;"
S = s & "Initial Catalog =students;" & data source =nasser"
db.ConnectionString = s                  
db.Open

ملاحظات على الكود السابق

1 – المزود Provider وهو اسم السائق الخاص بكائن الاتصال بقاعدة البيانات OLEDB والذي سيستخدمه الكائن ADO للوصول لقاعدة البيانات وهو هنا مع برنامج SQL server يكون SQLOLEDB.1 .

2 – رقم المستخدم User ID وهو رقم تعريف المستخدم لقاعدة البيانات حيث رقم المستخدم الافتراضي هو sa حيث من خلاله يمكنك وضع الحقوق والصلاحيات للوصول لقاعدة البيانات لكل مستخدم .

3 – كلمة المرور Password وهي تستخدم للتحقق من المستخدم وإذا كنت تود استخدام الأمن المتكامل في ويندوز 2000 أو ويندوز NT فنستخدم بدلا من رقم المستخدم وكلمة المرور user ID = sa ;password = نستخدم الجملة Integrated Security = SSPI

4– Data Source يوضع فيه اسم خادم SQL Server الذي تستخدمه فعند التعامل مع SQL Server حتى تستطيع إنشاء قاعدة بيانات يجب أن تعرف خادم قاعدة البيانات ويكون له اسم وغالبا يأخذ نفس اسم الجهاز وليكن هنا Nasser فإذا كنت تنشأ برنامج لشبكة شركة يجب أن تعرف من مدير الشبكة اسم خادم قاعدة البيانات .

5 - Initial Catalog وهي الميزة الرائعة لقاعدة البيانات SQL Server أن قاعدة البيانات لا تخزن في ملفات منفصلة بل تخزن على الخادم الرئيسي والذي يمكن الوصول إليه من أي جهاز عميل وهنا تضع اسم قاعدة البيانات المنشأة على الخادم Students ويوضع بدون مسار .

6 – Connectionstring هي الجملة التي تزود لقاعدة البيانات المزود المستخدم .

7 – ثم بعد ذلك يتم فتح قاعدة البيانات باستخدام الطريقة Open .

الخطوة السادسة

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

If rsst.State = adStateOpen Then rsst.Close
rsst.Open "st_inf", db, adOpenDynamic, adLockOptimistic

ملاحظات على الكود السابق

1- حيث السطر الأول يتأكد أن الجدول غير مفتوح فإذا كان مفتوح يتم إغلاقه حتى لا يحدث خطأ أنك تقوم بفتح عنصر مفتوح قبل ذلك .

2 - والسطر الثاني جملة فتح جدول وهي تحتوي على أربع بارامترات

الأول : اسم الجدول المراد فتحة ويوضع بين علامتي تنصيص وإن كان الاسم يحتوي على كلمتين منفصلتين ينبغي وضعه بين قوسين"[st Info]" .

الثاني : اسم قاعدة البيانات التي تستخدمها وهنا نضع المتغير الذي استخدمناه .

الثالث : نوع المؤشر courser type أو نوع السجلات وهنا يوجد أربعة انواع من المؤشرات أو السجلات

ملاحظة : يطلق على مجموعة الصفوف العائدة من الجدول اسم السجلات عند استخدام أكسس أو المؤشرات عند استخدام SQL Server .

النوع الأول DYNAMIC RECORDSET

وهذا النوع من أكثر الأنواع مرونة حيث يتم التعامل مع السجلات عن طريق مؤشرات تعبر عن السجلات الحقيقة في الجدول ولذلك تستهلك مقدار من الذاكرة

ويتم استخدام هذا النوع كالتالي

rs.Open " st_inf ", db, adOpenDynamic, adLockOptimistic                

النوع الثاني FORWARDONLY RECORDSET

وهي تسمح بالتحرك داخل السجلات في الاتجاه للأمام فقط حيث يمكن استخدام جملة MoveNext ولا يمكن استخدام جملة MovePrevious ويتم فتح الجدول بهذا النوع من السجلات كالتالي

rs.Open " st_inf ", db, adOpenForeardonly, adLockOptimistic                

النوع الثالث : KEYSET RECORDSET

يشبه نوع السجلات Static ولكن يتميز عنه قدرته على رؤية التغييرات التي تتم على السجلات ويمكن التحرك داخل السجلات للمام وللخلف يتم فتح هذا النوع من السجلات كالتالي

rs.Open " st_inf ", db, adOpenKeyset, adLockOptimistic                

النوع الرابع : STATIC RECORDSET

وهو يشبه إلى حد بعيد Snapshot في كائنات DAO وهو للقراءة فقط ولا يرى التعديلات التي تقع على السجلات ويمكن فتح هذا النوع من السجلات كالتالي

rs.Open " st_inf ", db, adOpenStatic, adLockOptimistic

الرابع : وهو نوع التزامن المطلوب للسجلات

هناك أربع أنواع للتزامن عند التعامل مع السجلات

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

AdLockReadOnly

حيث يتم فتح السجلات للقراءة فقط حيث لا يستطيع المستخدم تعديل السجلات أو تحديثها ويمكن لأكثر من مستخدم قراءة نفس السجلات في نفس الوقت .

AdLockPessimistic

وهو شكل صارم حيث يتم إغلاق السجل عندما يبدأ البرنامج بالتعامل معه حيث يمكن للمستخدمين الآخرين قراءة السجل ولا يمكنهم التعديل فيه أثناء تعديل البرنامج له وبعد تعامل البرنامج مع السجل يتم تحرير القفل ويستطيع المستخدمون الآخرون التعامل مع السجل وعرضه .

AdLockOptimistic

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

AdLockBatchOptimistic

نفس النوع السابق ولكن يستخدم مع مجموعة السجلات المفصولة حيث يتم فصل السجلات للتعديل من العميل ثم يقوم بالاتصال بالملقم لحفظ التعديلات على قاعدة البيانات .

تم تعديل بواسطه عبد الله فتحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحلقة الثامنة

العمليات الأساسية على السجلات

إضافة سجل جديد

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

If Txt1.Text ="" And Txt2.Text = "" And Txt3.Text = "" And Txt4.Text = "" Then
     MsgBox ("يجب إدخال القيم في مربعات النص")
Exit Sub
End if
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

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

لتعديل سجل معين نستخدم الكود التالي ونلاحظ هنا لأن الكائن ADO لا يستخدم الطريقة Edit كما هو موجود في الكائن DAO ولكن يقوم بالتعديل ثم حفظ التعديل بالطريقة Update

 
   rs![st_no] = Val(Txt1)      
   rs![st_name] = Txt2
   rs![address] = Txt3
   rs![b_date] = Txt4
   rs![phone] = Txt5
   rs.Update
End If

حذف سجل محدد باستخدام DELETE

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

Dim x As Integer
x = MsgBox"سيتم حذف البيانات", vbYesNo, "الحذف")
  If x = vbYes Then
     Do While Not rs.EOF
     If rs![st_no] = Val(text1) Then
      rs.Delete
   rs![st_no] = Val(Txt1)      
   rs![st_name] = Txt2
   rs![address] = Txt3
   rs![b_date] = Txt4
   rs![phone] = Txt5
      Exit Sub
      End If
      rs.MoveNext
      Loop
  Else
   Txt1.SetFocus
   Exit Sub
 End If

حذف سجل محدد باستخدام DELETE مع جملة SQL

لحذف سجل باستخدام جملة SQL نكتب الكود التالي

Dim b As Integer
b = MsgBoxو  "هل تريد بالتأكيد حذف السجل الحالي")   vbMsgBoxRight + vbYesNo( "حذف" و
If b = vbYes Then
db.Execute "delete from st_inf_info where st_no = " & Val(txt1)
rs.MoveFirst
rs.Fields.Refresh
     Txt1 = rs![st_no]
    Txt2 = rs![st_name]
    Txt3 = rs![address]
   Txt4 = rs![b_date]
   Txt5 = rs![phone]
Else
Txt1.SetFocus
End If

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

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

يتم تعريف متغير نصي في أعلى النموذج منطقة تعريف المتغيرات كالتالي

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

Dim nam, s, y As String
y = InputBox("ادخل الاسم المراد البحث عنه", "بحث”)
If Len(y) = 0 Then
  Exit Sub
Else
  s = "st_name=' " + y + " ' "
  rs.Find s, 1, adSearchForward
    If rs.EOF 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

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

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

Dim a As String
a = InputBox("ادخل اسم الطالب", "بحث")
rs.MoveFirst
Do While Not rs.EOF 'كرر لنهاية الجدول
If rs![emp_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

وبقية العمليات مثل التحرك للسجل الأول والأخير والسابق والتالي نفس كود الكائن DAO بدون إختلاف

الدرس القادم سيكون برنامج عملي يشمل جميع العمليات باستخدام الكائن ADO وكذلك استخدام الأدوات DataList وأداة DataCombo وأداة DataGride وأداة MsflixGride

فأنتظرونا في الحلقة القادمة

تم تعديل بواسطه nasser50001
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اخي ناصر

مشكور على هد السلسله من الحلقات

وانا اريد المساعده منك

اذا امكنك ذلك

انا عندي مشروع تخرج (مشروع قطع غيار سيارات )

وياريت اقدار اتواصل معك من اجل ارشادي إلى الخطوات الصحيحه من اجل البدا في المشروع

بشكل صحيح

ولك شكري

وهذا البريد حقي

[email protected]

وجزاك الله خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي medoo شكرا جزيلا

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

وبالتوفيق مقدما

أخوك ناصر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

معلش هناك بعض الأخطاء بالكود للحلقة الأخيرة حيث يمكن أن تجد اسم أحد الحقول

emp_no أو emp_name فغير الحقول الى st_no أو st_name وسوف أضع المثال الكامل لهذه الحلقة قريبا

أخوكم ناصر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم اخي ناصر :D

دروس رائعة ويارب تستمر كمان ان شاء الله :rolleyes:

وكله في ميزان حسناتك ان شاء الله (h)

مع تمنياتي بالتوفيق والنجاح

مع السلامة

عاشقة الاختراع

post-1-1107118842_thumb.jpg

تم تعديل بواسطه five star
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ما شاء الله عليك أخي ناصر

بالفعل دروس ولا أرتب ولا أروع من كدى

جعلها الله في ميزان أعمالك وسهل لك كل أمورك

وبارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا اخي ناصر

وانا شاء الله نبدا في القريب العاجل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخي العزيز ناصر لك كل الشكر على مجهوداتك الرائعة لك كل الشكر وجعلة الله في ميزان حساناتك ونتمني ان تستمر بمشاركاتك معنا .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ممتاز

يعطيك العافيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الأخت Five star

شكرا جزيلا على مرورك وتعليقك وإن شاء الله نكمل حتى النهاية ولا يهمك :D

الأخت رزان

الله يكرمك يا اختى وبارك الله فيك ويا ليت مشكلة التحزيم انتهت والله بدور على الحل ومش ناسي بالمناسبة هذا رابط شرح برنامج nstallShield يمكن تستفيدي منه

http://www.absba.info/pafile/pafiledb.php?...e&id=1&file=483

وبالتوفيق

أخي ميدو

تسلمت الملفات وجاري القراءة ولكن أعذرني على البطئ شوية

أخي nas1964 اوعي يكون اسمك ناصر كمان :D

شكرا جزيلا أخي على زوقك زمرورك وتعليقك وإن شاء الله نستمر بتشجيعكم

أخي عروة

جزاك الله على مرورك وتعليقك وتشجيعك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بسم الله الرحمن الرحيم

الله يعطيك العافية وما قصرت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا أخي ماجد الله يكرمك

*************************************************

اخواني هذا مثال كامل عى التعامل مع ADO إن شاء الله تستفيدو من هذا المثال وإن لم يتم فهمة جيده أو في مشاكل ممكن نتقبل الأسئلة فيه لأني سأبدأ في الحلقة القادمة في استخدام جمل SQL

الطلاب.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك اخي nasser50001 .. انك تثري المنتدى بموضوع كثرة الاسئلة عنه .. و كم كنت اتمنى ان اجد موضوع مشابه له منذ اكثر من سنة ... لانه منظم فعلاً و يستحق النشر ..:)

بارك الله فيك و بارك لك في وقتك ..

بنت اليمن ،،

تم تعديل بواسطه بنت اليمن
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .