15-10-12, 08:02 AM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
السلام عليكم ورحمة الله وبركاته .
القائمة الثانية : اضافة بضاعة جديدة .
في حال لم يكن لدينا أي أنواع أو مصانع فلن نستطيع اضافة أي بضاعة ، وهذا ما سنكتبه أيضاً عندما نظهر هذا الفورم .
في البداية سوف نختبر قيمة Index كما فعلنا مع القائمة الأولى .
والخيار الأول هو ما يهمنا خلال هذا الدرس . والآن سنتأكد من وجودة مصانع - موردين و أنواع .
وأخيراً اظهار الفورم الخاص بالاضافة :
والآن تصميم شاشة الاضافة ، ولقد صممتها مثل شاشة التعديل تماماً .
في البداية سوف نختبر قيمة Index كما فعلنا مع القائمة الأولى .
كود :
Select Case Index
Case 0
Case 1
Case 2
End Select
والخيار الأول هو ما يهمنا خلال هذا الدرس . والآن سنتأكد من وجودة مصانع - موردين و أنواع .
كود :
If T2.RecordCount = 0 Then
MsgBox "لا يمكنك اضافة بضاعة مع عدم وجود أي أنواع مدرجة ، قم باضافة نوع أولاً من قائمة اضافة - اضافة نوع . قبل البدء باضافة البضائع", vbExclamation + arabic, "اضافة بضاعة"
Exit Sub
End If
If T3.RecordCount = 0 Then
MsgBox "لا يمكنك اضافة بضاعة مع عدم وجود أي موردين لديك ، قم باضافة مورد أولاً من قائمة اضافة - اضافة مورد . قبل البدء باضافة البضائع", vbExclamation + arabic, "اضافة بضاعة"
Exit Sub
End If
وأخيراً اظهار الفورم الخاص بالاضافة :
كود :
Frm_Add.Show 1
*** من الممكن استخدام شاشة التعديل للاضافة مع اخفاء بعض العناصر فقط ، إلا أننا ابتعدنا عن هذا الإسلوب تجنباً للتداخل .
ومجدداً ، سوف نقوم مع كل تشغيل بتعبئة القوائم بالأنواع والمصانع الحالية .
كما أننا سنشئ اجراء لافراغ الخانات الأربع ، وسنسميه Clear_Text :
وسنستدعيه في Form_Load كما سنجعل كل من القائميتن يؤشران لأول عنصر فيهما :
وسنضع أمر التأكد من ادخال أرقام للخانات الثلاث الأخيرة . وقد شرحناه الدرس السابق :
كما لا ننسى أمر ( الغاء الأمر ) والخاص باغلاق الفورم :
والآن سننفذ أمر الاضافة عند النقر ، ومبدئياً لا بد أن يكون قد اختار اسماً للبضاعة ، أما العدد والسعر فإذا كان لا يحتاج إليهما فيمكنه عدم اضافتهما .
ولذا نتأكد من عدم فراغ الخانة في البداية :
ومن ثم نتأكد من عدم وجود بضاعة بنفس الاسم لدينا في قاعدة البيانات :
والآن سوف نبدا أولاً بالحصول على رقم النوع والمورد اللذان تم اختيارهما ، مع اعلامه فيما إذا اختار نوعاً أو مورداً سبق حذفه ، وذلك كما تعلمنا في الدرس السابق :
والآن سوف نضع المعلومات في أماكنها المناسبة في قاعدة البيانات :
لكننا هذه المرة لن نغلق الشاشة بعد انتهاء عملية الاضافة ، بل سوف نفرغ الخانات لاستقبال بضاعة جديدة ، وبإمكانه في حال أراد الخروج الضغط على زر انهاء .
هذا هو الملف بعد الانتهاء من عمليات الدروس السابقة ...
كود :
T2.MoveFirst
T3.MoveFirst
Combo1.Clear
Combo2.Clear
For i = 0 To T2.RecordCount - 1
Combo1.AddItem T2!Name
T2.MoveNext
Next i
For i = 0 To T3.RecordCount - 1
Combo2.AddItem T3!Name
T3.MoveNext
Next i
كود :
Sub Clear_Text()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
وسنستدعيه في Form_Load كما سنجعل كل من القائميتن يؤشران لأول عنصر فيهما :
كود :
Clear_Text
Combo1.ListIndex = 0
Combo2.ListIndex = 0
كود :
If (KeyAscii > 58 Or KeyAscii < 48) And KeyAscii <> 46 And KeyAscii <> 8 Then
KeyAscii = 0
End If
كود :
Unload Me
ولذا نتأكد من عدم فراغ الخانة في البداية :
كود :
If Text1.Text = "" Then
MsgBox "لا بد من ادخال اسم البضاعة !", vbExclamation + arabic, "اضافة بضاعة"
Exit Sub
End If
كود :
SQL = "select * from tb_product where name='" & Text1.Text & "'"
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
If T4.RecordCount <> 0 Then
MsgBox "توجد بضاعة لها نفس الاسم ، فضلاً اختر اسماً آخر", vbExclamation + arabic, "اضافة بضاعة"
Exit Sub
End If
كود :
T4.Close
Dim Num1, Num2
SQL = "select * from tb_category where name='" & Combo1.Text & "'"
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
Num1 = T4!Number
If T4!View = False Then MsgBox "لا تنس أنك اخترت نوعاً سبق لك حذفه وهو موجود بصورة مؤقتة حتى انتهاء البضائع من نفس النوع", vbExclamation + arabic, "نوع محذوف"
T4.Close
SQL = "select * from tb_factory where name='" & Combo2.Text & "'"
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
Num2 = T4!Number
If T4!View = False Then MsgBox "لا تنس أنك اخترت مورداً سبق لك حذفه وهو موجود بصورة مؤقتة حتى انتهاء البضائع من نفس المورد", vbExclamation + arabic, "مورد محذوف"
T4.Close
والآن سوف نضع المعلومات في أماكنها المناسبة في قاعدة البيانات :
كود :
With T1
.AddNew
!Name = Text1.Text
!category = Num1
!factory = Num2
!price = Val(Text2.Text)
!Count = Val(Text3.Text)
!Box_count = Val(Text4.Text)
.Update
End With
لكننا هذه المرة لن نغلق الشاشة بعد انتهاء عملية الاضافة ، بل سوف نفرغ الخانات لاستقبال بضاعة جديدة ، وبإمكانه في حال أراد الخروج الضغط على زر انهاء .
كود :
MsgBox "تمت الاضافة بنجاح ... إذا كنت تريد الانتهاء اضغط على زر انهاء أو واصل اضافة البضائع", vbInformation + arabic, "اضافة بضاعة"
Clear_Text
Text1.SetFocus
هذا هو الملف بعد الانتهاء من عمليات الدروس السابقة ...
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
والسلام عليكم ورحمة الله وبركاته .