السلام عليكم ورحمة الله وبركاتهُ
تقبلَ اللهُ منا ومنكم صالح الأعمال، وتقبل أضحيتكم
لدي مشروع إدارة مكتبة مركزية، متصل بقاعدة بيانات sql 2008 r2 - والأمور كلها تمام إلا في الطريقة الصحيحة لانقاص كمية الكتب بعد الإعارة وعند إعادة الكتب المعارة
قمتُ باستدعاء جدول الكتب ثم طرحت الآتي:
عدد الكتب الباقية = العدد الإجمالي للكتب - عدد نسخ الكتب المعارة
وعند إعادة الكتاب المعار يتم زيارة نسخة الكتاب المعار.
وكانت العملية تسير تمام، ولكنني أرى هذه الطريقة غير ذات جدوي على المدى البعيد، خاصة أنني لاحظتُ أنه حين نفاذ نسخ الكتب فإن الناتج يبدأ في السالب.
أي: إذا كان العدد الإجمال للكتب (0) فإن نتيجة الطرح تأتي بالعدد سالب (0 - 10 = -10).
السؤال: عند نفاذ نسخ الكتاب المفروض أنه لايمكن إعارة كتاب باعتبار أنه غير موجود وهذا كود الحفظ
حيث Table_aliieara جدول الإعارة
وهذا كود تحديث جدول الكتب
حيث Table_Add_books جدول الكتب
ID_alnuskh حقل عدد نسخ الكتاب وهو المطلوب تحديثه عند الإعارة والإعادة
TextIDalnuskh1 عدد الكتب الباقية
(TextIDalnuskh) العدد الإجمالي للكتب
(TextCount) تكست عدد الكتب المعارة
TextIDalnuskh1 = Val(TextIDalnuskh) - Val(TextCount)
أرجو أنني قد استطعت إيصالي الفكرة جيداً وإلا اسوي مثال بسيط لتتضح الفكرة أكثر.
أرجو مشاركتي الحل الأمثل والأحسن والأنجع.
تقبلَ اللهُ منا ومنكم صالح الأعمال، وتقبل أضحيتكم
لدي مشروع إدارة مكتبة مركزية، متصل بقاعدة بيانات sql 2008 r2 - والأمور كلها تمام إلا في الطريقة الصحيحة لانقاص كمية الكتب بعد الإعارة وعند إعادة الكتب المعارة
قمتُ باستدعاء جدول الكتب ثم طرحت الآتي:
عدد الكتب الباقية = العدد الإجمالي للكتب - عدد نسخ الكتب المعارة
وعند إعادة الكتاب المعار يتم زيارة نسخة الكتاب المعار.
وكانت العملية تسير تمام، ولكنني أرى هذه الطريقة غير ذات جدوي على المدى البعيد، خاصة أنني لاحظتُ أنه حين نفاذ نسخ الكتب فإن الناتج يبدأ في السالب.
أي: إذا كان العدد الإجمال للكتب (0) فإن نتيجة الطرح تأتي بالعدد سالب (0 - 10 = -10).
السؤال: عند نفاذ نسخ الكتاب المفروض أنه لايمكن إعارة كتاب باعتبار أنه غير موجود وهذا كود الحفظ
كود :
If RS.State = 1 Then RS.Close
RS.open "select * from Table_aliieara where ID='" & Trim(TextAID.Text) & "'", cn, adOpenKeyset, adLockOptimistic
If RS.RecordCount <> 1 Then
RS.AddNew
RS!ID = Trim(TextAID.Text)
RS!Cod_altasnif = Trim(TextCod.Text)
RS!tasnif_BooK = Trim(Combotasnif.Text)
RS!altasnif_type = Trim(Listtype.Text)
RS!Book_name = Trim(TextBook.Text)
RS!almualaf_name = Trim(TextalMoalf.Text)
RS!almustaeir_name = Trim(Textalmustaeir.Text)
RS!almustaeir_sifat = Trim(Textsifat.Text)
RS!College_Name = Trim(TextCollege.Text)
RS!alqism_name = Trim(Textalqism.Text)
RS!Study_number = Trim(TextSnumber.Text)
RS!aliieara_Date = Trim(TextSDate.Text)
RS!number_days = Trim(TextNDays.Text)
RS!Return_date = Trim(TextEDate.Text)
RS!ID_Count = Trim(TextCount.Text)
RS!ID_CCount = Trim(TextCCount.Text)
RS!DAT = Trim(TextDAT.Text)
RS!Time = Trim(TextTime.Text)
RS.Update
FillSubtract
End If
' ============================
Call Form_Load
Call Clear_Textحيث Table_aliieara جدول الإعارة
وهذا كود تحديث جدول الكتب
كود :
Sub FillSubtract()
' ===========================
If RS.State = 1 Then RS.Close
RS.open "select * from Table_Add_books where ID_Cod='" & Trim(TextID.Text) & "'", cn, adOpenKeyset, adLockOptimistic
If RS.RecordCount <> 0 Then
RS.Update
RS!ID_Cod = Trim(TextID.Text)
RS!ID_alnuskh = Trim(TextIDalnuskh1.Text)
' ==================================================
TextIDalnuskh1 = Val(TextIDalnuskh) - Val(TextCount)
' ==================================================
RS.Update
MsgBox "تم إعـارة كتاب : " & " " & TextBook.Text & " - عدد النسخ الباقية : " & TextIDalnuskh1.Text & " - كتاباً - " & " - لـ : " & Textalmustaeir.Text & " - الصفة : " & Textsifat.Text & " - الكلية : " & TextCollege.Text & " - الرقم الدراسي : " & TextSnumber.Text & " - بنجاح " & "", vbInformation + vbMsgBoxRight, "إجــراء الإعارة ..."
End If
Call Form_Load
' ============
End SubID_alnuskh حقل عدد نسخ الكتاب وهو المطلوب تحديثه عند الإعارة والإعادة
TextIDalnuskh1 عدد الكتب الباقية
(TextIDalnuskh) العدد الإجمالي للكتب
(TextCount) تكست عدد الكتب المعارة
TextIDalnuskh1 = Val(TextIDalnuskh) - Val(TextCount)
أرجو أنني قد استطعت إيصالي الفكرة جيداً وإلا اسوي مثال بسيط لتتضح الفكرة أكثر.
أرجو مشاركتي الحل الأمثل والأحسن والأنجع.
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ

