باختصار شديد اخي العزيز ...
في بعض الاحيان نحتاج الى عمليات حسابية معينة لايستطيع الاكسس القيام بها لوحده (او قل حسبما متوفر عنده )
لهذا نلجأ الى عمل دوال وظيفتها القيام بتلك المهمة ..وهذه الدالة يقوم بتنفيذها معالج الحاسوب وليس الاكسس..ولكي يقوم المعالج بهذا الدور يجب تعريف المتغيرات التي نحتاجها حسب نوع البيانات ليتم حجز مكان لها في الذاكرة
اما السطر الاول فاسم الدالة نقوم باستدعائه من اي مكان في البرنامج... وكاننا نقول لها(الدالة) خذي ايتها الدالة تلك التواريخ ومرريها داخل الباراميتر (التي بين القوسين) حتى يتم معالجتها داخل اكواد الدالة
هناك الكثير من الشروحات للاخوة الاساتذة في المنتدى حول هذا الموضوع...بس يحتاج شوية مذاكرة واي شيء مش فاهمو اسال عنه
والله اعلم
اضافة لما تفضل به استاذ ناقل ..
يمكن استخدام الكود
Dim PageNo As Integer
PageNo = Me.CurrentRecord
DoCmd.SelectObject acForm, "MyForm", True
DoCmd.PrintOut acPages, PageNo, PageNo, , 1
ولطباعة الصفحة الحالية فقط ..اتبع الخطوات التالية
هو لايذهب الى اول صفحة وانما يذهب لاول سجل في مربع التحرير
والراجل حقه يهتز ..فانت محمله اكثر من طاقته
يجب ان ننتبه الى ان استعلام SELECT لايتم فيه تغيير البيانات ولهذا لاتحتاج الى مربع تحرير
ثانيا ..في رايي الاختصار في الاكواد مهم جدا حسب عمل الكود ... فللانتقال للاعلى بين السجلات استخدم
If Me.CurrentRecord > 1 Then
DoCmd.GoToRecord , , acPrevious
End If
وللانتقال الى الاسفل نستخدم
If Me.CurrentRecord <= Me.RecordsetClone.RecordCount Then
DoCmd.GoToRecord , , acNext
End If
و صلى الله وبارك..
انظر للمرفق.. عملت نموذج جديد اضافة لنموذجك القديم ولاحظ الفرق
هو (يهز) بس قليل 😄
جداول.rar
بالتاكيد هنالك علاقة ...الجداول كثيرة والعلاقات متشعبة تحتاج مراجعة دقيقة
هناك ملاحظة مهمة لاستاذنا القدير @ابوخليل...كلما امكنك التقليل من عدد الجداول كلما امكنك السيطرة على الاخطاء