اذهب الي المحتوي
أوفيسنا

كود اوامر طباعة متسلسلة


إذهب إلى أفضل إجابة Solved by ابوخليل,

الردود الموصى بها

أخواني الأحباب أرجو منكم أن تخبروني كيف اعمل كود طباعة لعدد من الصفح في تقارير مختلفة و بتراتيب مختلفة حيث ان عندي طابعة دوت ماتركس ابيسون و تطبع من اليسار لليمين و لإستخراج الكشوف بترتيبها من تقارير مختلفه احتاج لكود ليكون ترتيب التقارير كما يلي :
طباعة تقرير (استقطاعات ) كشف رقم 14
ثم طباعة تقرير ( استقطاعات ) كشف رقم 13
ثم طباعة تقرير ( استحقاقات ) كشف رقم 14
ثم طباعة تقرير ( استحقاقات ) كشف رقم 13
ثم طباعة تقرير ( استقطاعات ) كشف رقم 12
ثم طباعة تقرير ( استقطاعات ) كشف رقم 11
ثم طباعة تقرير ( استحقاقات ) كشف رقم 12
ثم طباعة تقرير ( استحقاقات ) كشف رقم 11
.
.
.
..
و هكذا حتى طباعة الكشف الأول من كل تقرير 
و مرفق طيه قاعدة البيانات برجاء وضع الكود في زر أمر طباعة في النموذج الوحيد المرفق لتسهيل الوصول إليه
و تفضلوا بقبول فائق الإحترام

Staff salaries 11.rar

رابط هذا التعليق
شارك

اخي الفاضل لو ممكن تضع لي مثال و تكتب الكود كاملاً لاربعة صفحات فقط و انا في ضوء ذلك ساضع ما اريد من صفحات لكني لا اعرف كيف ابدأ و كيف اكتب اسم التقرير و كيف انهي الكود لاني جديد في موضوع الاكواد و لك جزيل الشكر

تم تعديل بواسطه m1941968
رابط هذا التعليق
شارك

اخونا محمد رفعت  شكرا لقبول الدعوة

اما مسألتك فإنها محلولة بإذن الله

فقط لدي بعض الاستفسارات حتى نخرج بالحل على اكمل وجه

انت لديك اكثر من تقرير وحسب عرضك هما اثنان وتريد طباعة الصفحات بترتيب معين مثلا تبدأ من النهاية

السؤال : هل عدد الصفحات دوما 14 ام انها تزيد وتنقص حسب البيانات المدخلة وحسب الظروف ؟

فإن كانت تتغير فمن غير المستحسن ادراج الارقام داخل الكود وانما نعوض عنها بمتغيرات تمثل ارقام الصفحات

 

بانتظارك ... 

رابط هذا التعليق
شارك

سأعرض الحل هنا مع توضيح بعض النقاط المهمة
فالجملة البرمجية التي تستخدم  لفتح ثم طباعة الصفحات المحددة من التقرير
DoCmd.OpenReport stDocName, acPreview
DoCmd.PrintOut acPages, pageFrom, pageTo
لا تقوم بالمهمة كما ينبغي وكما رسمت له 
فمن المعلوم ان تنفيذ هذا الكود سيكون من خلال النموذج
لذا يصعب التنفيذ بل يمتنع وتظهر بعض العقبات غير المتوقعة فمنها :
-  طباعة النموذج بدلا من التقرير وقد يتم طباعة الاثنين معا
- عدم طباعة الصفحات المحددة وانما يتم طباعة الجميع 
- هذا الكود يقوم بفتح التقرير وهذه مشكلة بحد ذاتها
 حيث يستلزم اخفاؤه او تصغيره ثم غلقه 
 
وهل هناك بديل ؟  نعم
وهو يقوم بكل لطف وصمت بطباعة صفحات محددة من تقارير عدة
والحل سطران فقط ومن اراد الزيادة فعليه ان يكررهما ما شاء
 
الاول يقوم بتحديد التقرير لا فتحه
DoCmd.SelectObject acReport, "استقطاعات", True
والثاني لطباعة الصفحات المحددة 
DoCmd.PrintOut , 14, 13, , 1
رقم 1 يمثل عدد النسخ
 
في المرفقات تحقيق وتطبيق

طباعة واختيار الصفحات من عدة تقارير.rar

  • Like 3
رابط هذا التعليق
شارك

أخي الحبيب السلام عليكم
بداية احب أن اعبر عن شعوري بالشكر و العرفان و تواضع التلميذ لأستاذه عن هذا الإهتمام البالغ و الوقت الذي قضيته مع مشكلتي 
ثانياً اشكرك شكراً جزيلاً فلقد استطعت بفضل الله ثم بفضل أرشادكم ان اكتب الكود الكامل لما اريد طباعته لكن مع الاسف بعد ان يقوم البرنامج بتحميل امر الطباعة تظهر رسالة خطأ و يريد ارسال تقرير و اعادة تشغيل برنامج الاكسس كله و لا اعرف السبب في ذلك

رابط هذا التعليق
شارك

اخي الحبيب اخيراً عرفت سبب خروج البرنامج و عمل خطأ فلقد كان السبب اني قد جعلته يفتح التقارير بصورة منبثق فكان يعمل خطا و يخرج و لما عدلته للوضع الغير منبثق لم يحدث الخطأ فجزاكم الله خيراً

و يبقى اخي الحبيب ان تدلني علي كود يكتب في حالة تغير عدد الصفحات فقد يكثر عددها ليصل العشرين أو يقل عن ذلك فما ترى الحل لذلك 

و لك منى جزيل الشكر

رابط هذا التعليق
شارك

  • أفضل إجابة

تفضل وحدة نمطية مع الشرح  يمكن من خلالها طباعة الصفحات من تقريرين تنازليا  مهما بلغت الصفحات 

وايضا يمكن تحديد نقطة البداية او صفحة البداية

فلو فرضنا ان لديك تقريرين كل واحد منهما يحتوي على 100 صفحة وتريد ان تبدأ الطباعة من الصفحة رقم 20 تنازليا

فكل ما عليك  هو ان تضع رقم صفحة البداية في الحقل المخصص في النموذج 

افتح محرر الفيجوال والصق الوحدة النمطية التالية : 

Function PrintDscOrder(Rep1 As String, Rep2 As String)
Dim PgNum As Integer, _
PgNum2 As Integer, PagesCnt As Integer  'اعلان عن متغيرات رقمية تمثل مجمل الصفحات وارقام الصفحات المحددة
PagesCnt = Me.RepageCnt.Value           'مجمل الصفحات = قيمة الحقل في النموذج
For PgNum = PagesCnt To 1 Step -2       'دوارة تنازلية زوجية
PgNum2 = PgNum - 1            'تحديد رقم الصفحة الثانية وهي هنا اقل من الحالية بواحد
DoCmd.SelectObject acReport, Rep1, True   'تحديد التقرير الأول
DoCmd.PrintOut , PgNum, PgNum2, 1        'طباعة الصفحات المحددة
DoCmd.SelectObject acReport, Rep2, True  ' تحديدالتقرير الثاني
DoCmd.PrintOut , PgNum, PgNum2, 1         'طباعة الصفحات المحددة
Next PgNum                                'عودة لبداية الدوران
End Function                               'تصميم وترتيب ابوخليل

وفي حدث بعد النقر لزر الطباعة الصق السطر التالي :

Call PrintDscOrder("استقطاعات", "استحقاقات")

طباعةالصفحات تنازليا من تقريرين.rar

  • Like 5
رابط هذا التعليق
شارك

أخي الحبيب و استاذي الفاضل لا أجد في قاموس الكلمات ما اعبر به عن امتناني لك و حبي و اعزازي و تقديري لمجهودك معي

بفضل الله ادخلت الكود الاول علي البرنامج و استجاب و سارت الأمور كما اتمنى فلك مني جزيل الشكر 

و لأن من طبعي الطمع فلقد حملت الكود الثاني أيضاً لدراسته و التعلم  من علمكم الوافر فلكم مني جزيل الشكر

رابط هذا التعليق
شارك

الحمد لله ،،، هذا من فضله 

وشكرا على مشاعرك الطيبة

 

فلقد حملت الكود الثاني أيضاً لدراسته

 

 الكود الثاني  افضل بلا شك  وليس هناك وجه مقارنه بينه وبين الأول

رابط هذا التعليق
شارك

المشكلة الوحيده فيه بس يا استاذنا انه بيخليك تحط عدد صفحات التقرير في كل مرة تطبع فيها لو ممكن نخليه هو تعرف عدد الصفحات بصورة تلقائية و يطبع بالتراجع كل صفحتين بدون تدخل منا اثناء الطباعة يبقى كله تمام

رابط هذا التعليق
شارك

و كمان الكود الاول بسيط الفهم بالنسبة لمن هو متطفل علي الاكسس مثلي مما مكننى من التعامل معه و التوسع في استعمالة ليشمل حوالي اربع تقارير و الاختيار بين صفحاتهم علي النحو التالي :

 

Private Sub تقرير_Click()
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 14, 13, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 14, 13, , 1
DoCmd.SelectObject acReport, "استحقاقات", True
DoCmd.PrintOut , 12, 11, , 1
DoCmd.SelectObject acReport, "استحقاقات", True
DoCmd.PrintOut , 12, 11, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 10, 9, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 10, 9, , 1
DoCmd.SelectObject acReport, "استحقاقات", True
DoCmd.PrintOut , 8, 7, , 1
DoCmd.SelectObject acReport, "استحقاقات", True
DoCmd.PrintOut , 8, 7, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 6, 5, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 6, 5, , 1
DoCmd.SelectObject acReport, "استحقاقات", True
DoCmd.PrintOut , 4, 3, , 1
DoCmd.SelectObject acReport, "استحقاقات", True
DoCmd.PrintOut , 4, 3, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "استقطاعات", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "استقطاعات بنوك", True
DoCmd.PrintOut , 4, 3, , 1
DoCmd.SelectObject acReport, "استحقاقات بنوك", True
DoCmd.PrintOut , 4, 3, , 1
DoCmd.SelectObject acReport, "استقطاعات بنوك", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "ااستحقاقات بنوك", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "استقطاعات بنوك", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "ãÌÇãíÚ ÇÓÊÍÞÇÞÇÊاستحقاقات بنوك", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "مجاميع مرتبات خازينة", True
DoCmd.PrintOut , 2, 1, , 1
DoCmd.SelectObject acReport, "مجاميع مرتبات بنوك", True
DoCmd.PrintOut , 2, 1, , 1
End Sub
تم تعديل بواسطه محمد رفعت 2014
  • Like 1
رابط هذا التعليق
شارك

  • 6 years later...

السلام عليكم وبخصوص الكود دة  

DoCmd.PrintOut , 14, 13, , 1

لو انا عندي هي صفحة واحدة فقط التي اريد طبعتها ولاكن اريد ان استفيد من الكود من ناحية عدد مرات الطباعة فكيف يكون الكود وهل ممكن استبدال رقم واحد ب مربع نص

رابط هذا التعليق
شارك

Dim i As Integer
i = Me.text1
DoCmd.PrintOut , 1, 3, , i

على اعتبار  text1 هو اسم مربع النص

الكود اعلاه لطباعة الثلاث صفحات الأولى

ولصفحة واحدة :

DoCmd.PrintOut , 1, 1, , i

 

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information