الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود طباعة تقرير على شرط

مغلق
بدأه biskra في 5 مايو 2004 · 3 رد · 2,575 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أستعمل الكود التالي لطباعة تقرير اٍذا توفرت الشروط حسب الكود لكن المشكلة أنه بالاٍضافة الى طباعة التقرير فاٍنه يطبع النموذج

Private Sub cmdPrint4_Click()
On Error Resume Next
DoCmd.RunCommand acCmdRefresh

Dim stDocName As String
Dim intResponseToMsgBox As Integer
    intResponseToMsgBox = MsgBox("هل تريد بداية الطباعة¿", vbOKCancel)
    If intResponseToMsgBox = vbOK Then
    DoCmd.RunCommand acCmdPrint
DoCmd.OpenReport "notification", acViewNormal, WhereCondition:=" printaffichage = False and notification=false "
DoCmd.SetWarnings False
DoCmd.RunSQL "Update tbl1 set printaffichage = true where printaffichage = false "
DoCmd.SetWarnings True
End If
End Sub

أشك في الأمر DoCmd.RunCommand acCmdRefresh الذي أستعمله لكي يطبع كل التقارير بما التقرير الحالي المعرو على النموذج,

#2

لقد تم حل المشكلة جزئيا, بالكود التالي الذي لا يختلف عن الأول:

Private Sub cmdPrint5_Click()
On Error Resume Next
DoCmd.RunCommand acCmdSaveRecord
 Dim stDocName As String
Dim intResponseToMsgBox As Integer
    intResponseToMsgBox = MsgBox("تأكد من أن الطابعة جاهزة  ", vbOKCancel)
    If intResponseToMsgBox = vbOK Then
 DoCmd.OpenReport "affichage", acViewPreview, WhereCondition:=" PrintYesNo = False and notification=false "
DoCmd.SetWarnings False
DoCmd.SelectObject acReport, "affichage"
DoCmd.PrintOut acPages, , , , 2
DoCmd.Close acReport, "affichage"
DoCmd.RunSQL "Update tbl1 set PrintYesNo = true where PrintYesNo = false "
DoCmd.SetWarnings True
End If
End Sub

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

#3

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

المثال يعتمد على فكرة الطباعة التلقائية للسجلات الجديدة التي لم تطبع سابقا, أي أن السجل يطبع مرة واحدة فاٍدا أضفت سجلات جديدة و عندما تضغط على زر الطباعة فاٍن السجلات الجديدة تطبع لوحدها, و هي طريقة تغني عن شاشة أوامر الطباعة, اٍضاغة الى فكرة استعمال أمر PrintOut التي بواسطتها يمكن التحكم في خصائص الطباعة كدقة الطباعة, اٍختيار الطابعة و عدد النسخ المراد طبعها, في المثال اٍستعملت الخاصية لطباعة نسختسن من السجلات المراد طباعتها.

On Error Resume Next
DoCmd.RunCommand acCmdSaveRecord
If DCount("*", "tbl1", "PrintYesNo=False AND notification=False") > 0 Then
  DoCmd.OpenReport "affichage", acViewPreview, , "PrintYesNo=False AND notification=False"
  DoCmd.SetWarnings False
  DoCmd.SelectObject acReport, "affichage"
  DoCmd.PrintOut acPages, , , , 2
  DoCmd.Close acReport, "affichage"
  DoCmd.RunSQL "Update tbl1 set PrintYesNo = true where PrintYesNo = false "
  DoCmd.SetWarnings True
  Else
  MsgBox "لاتوجد بيانات للطباعة"
End If

يوضع هذا الكود خلف زر طباعة.

بمناسبة هذه الليلة المباركة أتقدم للأستاذ أحمد الحربي على المساعدة التي قدمها لي للوصول الى هذه النتيجة, سائى المولى عز و جل أن يضاعف حسناته و يحفظ وجهه من نار جهنم.

db16.rar

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…