اكمالا لموضوع اخونا ابو الوليد هناhttp://www.officena.net/ib/index.php?showtopic=54716
او بالاصح اعادة تصميم وهيكلة لبرنامج الصندوق
فنبدأ بسم الله ثم ننشء الجداول مع ملاحظة مايلي :
1- تسميات الجداول والحقول بحروف انجليزية والتسمية التوضيحية باللغة العربية
ليسهل علينا كتابة الاكواد مستقبلا عند الحاجة
2- جدول لبيانات الاشخاص
3- جدول لتفاصيل العمليات
4 - جداول خدمية
أ- جدول للعمليات الرئيسية
ب - جدولين للعمليات الفرعية
ج - جدول للشهور والسنة
يجب ملاحظة ان جدول التفاصيل يشتمل على اكثر من مربع تحرير وضعناها فقط مؤقتا حتى انتهاء التصميم وسيتم لاحقا ارجاع الحقول الرقمية الى مربعات حقول عادية
آمل الاطلاع على المرفق وانتظر الملاحظات والاستفسارات ان وجدت ، قبل الانتقال الى الخطوة الثانية
صندوق1.rar
جرب الاقتصار على الرسالة فقط ليصبح الكود هكذا
Private Sub Report_NoData(Cancel As Integer)MsgBox " معذرة اخي الكريم .... لايوجد تحويلات مالية خلال هذا الشهر ", vbCritical, "تنبيه"
Cancel = True
End Sub
ما رايك ان افتح موضوعا جديدا وبعنوان مناسب لاعادة تصميم البرنامج ؟
ملحوظة : يمكنك الاستفادة لاحقا من نماذجك وتقاريرك الموجودة
بداية : الاصلاح سيتم على الجداول والاستعلامات
وعليكم السلام
بصفة عامة :
علامة التعجب ( ! )
ما بعدها يعتبر جزء أو عضو في المجموعة التي قبله
اما النقطة ( . )
فما بعدها هو خاصية أو أسلوب من سابقه
واحيانا نجد هذا التعريف غير منضبط حين يكون التعامل داخل محرر النموذج
وهل تتحول المجموعة الى خصائص ؟ ام ان هذا خاص بـ اكسس
فحين نريد ان نشير الى حقل خارج النموذج محل العمل نستخدم هذه الصيغة forms!frm1!text1
ولكن حينما نشير الى حقل ونحن داخل النموذج نستخدم me.text1 حيث me تعني النموذج الحالي
علما انه يمكننا الاكتفاء باسم الحقل فقط للاشارة اليه ما دمنا داخل النموذج
رجعت مرة اخرى لتفحص برنامجك فوجدت سبب صعوبة التعامل واضطرارك لتوظيف استعلامات التوحيد بكثرة هو اساسا نابع من البداية وهو التأسيس الصحيح في الجداول فانت لست بحاجة ان تضع كل هذه الجداول لادخال البيانات فيكفي في العملية جدولا واحدا وان كنت مصرا فاثنين على اكثر تقدير ويكفي ان تشير داخل الجدول الى العملية برمز معين بحيث يمكنك مستقبلا التصفية من خلال هذا الرمز .
أخي ابا الوليد تحية طيبة وبعد
حقيقة يوجد في جهازي اكسس 2003 فقط وطبعا لا يمكنني فتح المرفق
ولكن بالامس كان ابني بجانبي ومعه جهازه المحمول فاطلعت على مثالك وقمت بالتعديل عليه
فلو حولت عملك وجعلته على صيغة mdb لرجوت لك تفاعلا اكبر من الزملاء
نعود لموضوعنا :
والتصفية من خلال الشهر افضل لا شك لسهولة التعامل ويمكن وضع قائمة منسدلة بالاشهر للاختيار منها
ولكن قبل ذلك انت بحاجة الى اعادة النظر في التأسيس :
فكيف تبحث في جدول الدفعات عن اشخاص غير موجودين اصلا ؟ وهذه يوجد لها حل
ولكن العائق الحقيقي انك ستبحث عن اشخاص غير موجودين خلال شهر معين ، وحقل التاريخ الذي تبحث فيه فارغ !
في الكود ادناه يمكنك عند الخطأ جعل مربع الصورة فارغ او عرض صورة رمزية
On Error GoTo ErrHandler
Me.myPics.Picture = Application.CurrentProject.Path & "\" & Me.eSiS & ".jpg"
ErrHandler:
If err.Number = 2220 Then
Me.myPics.Picture = ""
' Me.myPics.Picture = Application.CurrentProject.Path & "\0.jpg"
End If
تم التعديل واخراج الرصيد
اما معرفة المتأخرين فمن وجهة نظري حين يكون الاشتراك شهريا فيجب البحث بمعلومية الشهر وليس تاريخ بداية وتاريخ نهاية
فنبحث عن المتأخرين خلال شهر رمضان فيكون المعيار في الاستعلام رقم 9 وتستطيع استخلاص رقم الشهر من التاريخ في عمود مستقل في الاستعلام باستخدام الدالة month
لتصبح هكذا :
رقم_الشهر:month([حقل التاريخ])
الصندوق.rar
بهذه الطريقة (قد) يستفيد صاحب السؤال فقط
وانما بني هذا المنتدى من اجل بذل المعلومة ونشرها للجميع
من هنا >> كيفية رفع المرفقات http://www.officena.net/ib/index.php?showtopic=31250