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

سوال اختيار الطابعه


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

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

فكرة :::::::

يمكن عمل جدول حقولها ( الطابعة الافتراضية - طباعة الباركود - طباعة الريست ............................... )

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

On Error Resume Next
    Dim strRptName
    strRptName = "ReportName"
    DoCmd.SelectObject acReport, strRptName, False
    SetDefaultPrinter ("fieldName")
    DoCmd.OpenReport strRptName, acViewNormal

 

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

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

تستطيع من خلال التعديل على الكود جعله يحفظ أسماء الطابعات في جدول خاص بها ..

Sub ShowPrinters()
    Dim strCount As String
    Dim strMsg As String
    Dim prtLoop As Printer
     
    On Error GoTo ShowPrinters_Err
 
    If Printers.Count > 0 Then
        ' Get count of installed printers.
        strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf
     
        ' Enumerate printer system properties.
        For Each prtLoop In Application.Printers
            With prtLoop
                strMsg = strMsg _
                    & "Device name: " & .DeviceName & vbCrLf _
                    & "Driver name: " & .DriverName & vbCrLf _
                    & "Port: " & .Port & vbCrLf & vbCrLf
            End With
        Next prtLoop
     
    Else
        strMsg = "No printers are installed."
    End If
     
    ' Display printer information.
    MsgBox Prompt:=strMsg, Buttons:=vbOKOnly, Title:="Installed Printers"
     
ShowPrinters_End:
    Exit Sub

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

Sub ListPrinters()
    Dim prt As Printer
    For Each prt In Printers
        Debug.Print prt.DeviceName
    Next prt
End Sub

ثم استخدم هذا الكود لتعيين طابعة معينة لتقرير معين :

Sub SetReportPrinter(rptName As String, PrinterName As String)
Dim rptName As String

DoCmd.OpenReport rptName, acViewPreview
Set Reports(rptName).Printer = PrinterName 'Or some printer returned by your search code
DoCmd.SelectObject acReport, rptName
DoCmd.PrintOut
DoCmd.Close acReport, rptName
End Sub

 

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

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