例如:我有两个打印机一个名字叫"AA",一个名字叫"BB"
我现在要打印报表DataReport1.Show ,请问如何指定打印机的名称"BB"来打印?

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5725/5725321.xml?temp=.5689966
      

  2.   

    Private Sub Command1_Click()
        Dim Printer As Printer
        Set Printer = PrinterByName("打印机名称")
        If Not Printer Is Nothing Then
            '.....这里打印
        End If
    End SubPublic Function PrinterByName(s As String) As Printer
        Dim p As Printer
        For Each p In Printers
            If LCase(p.DeviceName) = LCase(s) Then
                Set PrinterByName = p
                Exit Function
            End If
        Next
    End Function
      

  3.   

    Modest(塞北雪貂) :谢谢
    你给我的代码我修改了"打印机名称",在用打印机命令PrintForm打印窗体测试,怎么不起作用?我用下面一行代码可以指定打印机打印,不过不是按照打印机的名称,是按照打印机安装驱动时生成的先后循序来打印的,请问能否改名称来打印?
    Set Printer = Printers(1)
    PrintForm '打印窗体,用来测试'Printers(0)表示安装时的第一个打印机
    'Printers(1)表示安装时的第二个打印机
    谢谢你一定要帮我看一下
      

  4.   

    怎么又开一贴?以下这个连接的方法不行吗?
    http://blog.csdn.net/vbman2003/archive/2007/08/25/1758420.aspx
      

  5.   

    vbman2003(家人) 谢谢
    因为我昨天调试了你给的代码好久,是我没能理解,所以昨晚又粘了一贴.
    今天我调试成功了,非常谢谢你.