2010-07-27 91 views
0

我使用这个代码,从形式打印记录

Private Sub btnPrintRecord_Click() 
On Error GoTo Err_btnPrintRecord_Click 


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 
    DoCmd.PrintOut acSelection 

Exit_btnPrintRecord_Click: 
    Exit Sub 

Err_btnPrintRecord_Click: 
    MsgBox Err.Description 
    Resume Exit_btnPrintRecord_Click 

End Sub 

但是,这个代码不弹出打印窗口选择打印机,它会自动发送到默认打印机打印的记录。

任何人都可以帮助弹出打印窗口,从中选择打印机。

回答

1

DoMenuItem自至少Access 2000以来已被弃用。您可以使用RunCommand打开打印窗口。

DoCmd.RunCommand acCmdPrint 

这是几乎从来没有打印记录一个好主意。建立一个可以与Where参数一起使用的报告并不需要很长时间。这会给你更多的控制权,并为你的用户带来更愉快的体验。

+0

我们已经有报告..但工程师想要一个单一的记录检查错误..临时参考 – user397316 2010-07-27 14:55:58

+0

感谢您的代码行,它正在工作..完美 – user397316 2010-07-27 14:56:31

+0

在打印对话框中,他们应该选择pdf和选定的记录选项..否则这将打印整个数据库 – user397316 2010-07-27 14:57:52

0

正如文档中所述,DoCmd.PrintOut不显示打印对话框。

我想到的第一个解决方案是使用SendKeys功能,发送Ctrl + P并以这种方式打开打印对话框。

+0

我是新来access..Can小姐请您在这里包括该功能... 感谢 – user397316 2010-07-27 14:12:47

+0

只需键入sendkeys进入VBA编辑器,然后按F1,然后你会看到,你必须使用的SendKeys“^ P” ! – dwo 2010-07-27 14:31:52

+1

SendKeys几乎不是一个好主意,它不会在运行Vista的电脑上运行。 – Fionnuala 2010-07-27 14:45:21

1

您是否看过打印机对象(它是在A2002中引入的)?您可以使用它获取有关打印机的信息并创建自己的对话框,以便用户选择打印机,然后将其设置在打印机对象上并打印报告。我从来没有真正使用它,所以不能给出详细的说明,但这是处理这个问题的正确方法。

而且,是的,这可能比它看起来要困难得多,但相信我,这比引入Printer对象之前更容易!