تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السابع عشر - قائمة (مسح)
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


مسح .

والآن سنتابع دروسنا ، وسنتعامل مع القائمة الفرعية ( مسح ) والتي تحتوي على ما يلي :
* جميع البضائع .
* جميع الأنواع .
* جميع الموردين .
* جميع عمليات البيع .
* جميع عمليات الشراء .


وسنقوم بعمل ذلك عبر اجراء مشترك .


وقبل بدء كل عملية لابد من اظهار رسالتي تحذير لهذه العملية - على الأقل - حيث أنها تمسح كماً كبيراً من البيانات .
والرسالتان موحدة لجميع العمليات ، وستكون بالشكل التالي :



كود :
Dim sure
sure = MsgBox("هل تريد بالتأكيد اتمام عملية الحذف هذه ؟", vbYesNo + vbExclamation + arabic, "تأكيد عملية الحذف")
If sure = vbNo Then Exit Sub
sure = MsgBox("إذا قمت بالمتابعة فلن يمكنك التراجع ، هل ما زلت تريد الاستمرار ؟", vbExclamation + vbYesNo + arabic, "تأكيد عملية الحذف")
If sure = vbNo Then Exit Sub

ومن ثم سنبدأ في التفريعات المختلفة حسب قيمة خاصية Index ، ومع كل قيمة سوف نستدعي اجراءً واحداً فقط ، لكننا نغير قيمة الرسالة التي تظهر به ، ونغير الجدول الذي تتم حذف عملياته ، لاحظ الأمر التالي :


كود :
Sub DEL(ByRef Table As Recordset, ByVal msg As String)
هذا يعني أننا في الاجراء سوف نستقبل Table من نوع RecordSet ( يمكن أن يكون T1 أو T2 ... ) اضافة إلى msg وهو نص رسالة التحذير التي ستظهر .
ومعنى ByRef أن التغيير الذي سيحدث في Table خلال الاجراء سوف يتم تطبيقه على الجدول الذي أرسلنها ، أما ByVal فمعنى ذلك أن التغيير لن ينعكس على الأصل .

وسيكون هذا الاجراء بالشكل التالي :


كود :
Sub DEL(ByRef Table As Recordset, ByVal msg As String)
If Table.RecordCount = 0 Then
MsgBox "لا توجد أي بيانات لحذفها", vbExclamation + arabic, "عرض البضائع"
Exit Sub
End If

Dim sure
sure = MsgBox(msg, vbYesNo + vbExclamation + arabic, "تأكيد عملية الحذف")
If sure = vbNo Then Exit Sub

Table.MoveFirst
For i = 0 To Table.RecordCount - 1
Table.Delete
Table.MoveNext
Next i

MsgBox "تمت عملية الحذف بنجاح", vbInformation + arabic, "اتمام عملية الحذف"
End Sub

أما الجزء الثاني وهو حذف المبيعات والمشتريات ، فعلى نفس الطريقة يمكننا عمل اجراء واحد لهم ، ولكنه يختلف في قيمة 0 أو 1 والتي ترمز للبيع أو للشراء . لاحظ الكود التالي :


كود :
Sub DEL2(ByVal knd As Byte)
If T5.RecordCount = 0 Then
MsgBox "لا توجد أي بيانات لحذفها", vbExclamation + arabic, "عرض البضائع"
Exit Sub
End If


T5.MoveFirst
For i = 0 To T5.RecordCount - 1
If T5!kind = knd Then T5.Delete
T5.MoveNext
Next i

MsgBox "تمت عملية الحذف بنجاح", vbInformation + arabic, "اتمام عملية الحذف"
End Sub


من أجل ذا يكون الاستدعاء حسب الجدول بالشكل التالي :


كود :
Select Case Index
Case 0
DEL T1, "إن حذف البضائع يقتضي حذف جميع عمليات البيع والشراء ، هل تريد الاستمرار ؟"
Case 1
DEL T2, "إن حذف الأنواع يقتضي حذف جميع البضائع ، هل تريد الاستمرار ؟"
Case 2
DEL T3, "إن حذف الموردين يقتضي حذف جميع البضائع ، هل تريد الاستمرار ؟"
Case 4
DEL2 0
Case 5
DEL2 1
End Select


*** ملاحظة هامة : لو عدت إلى البرنامج لوجدت الكثير من الدوال التي يمكن اختصارها بهذه الطريقة ، وبعمل
Array لأدوات عرض للجداول ، وغيرها .


الملف مرفق .


والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .



الملفات المرفقة
.zip   prog13.zip (الحجم : 186.03 ك ب / التحميلات : 89)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 1,444 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 1,238 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 1,169 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 1,763 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 1,000 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 844 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 1,569 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 1,721 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 1,231 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 1,106 15-10-12, 08:37 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم