|
下面代码判断报表是否已被打印(不管理是预览还是直接打印)
1. 创建一个全局变量
Public intPrinted as Boolean
2. 在模块中创建下面两个函数
--------------------------------------------------------------------------------
Public Function PrintDialog()
On Error GoTo err_Proc
'Opens windows print dialog box
'If fails to print or cancelled then goes to error message and does not set intPrinted flag
DoCmd.RunCommand acCmdPrint
intPrinted = True
'Enable following line if you want report to close immediately after printing
' DoCmd.Close acReport, Screen.ActiveReport.Name
exit_Proc:
Exit Function
err_Proc:
Resume exit_Proc
End Function
Public Function PrintReport(stDocName as String, stLinkCriteria as string, intPreview as Integer)
On Error GoTo err_proc
'stDocName = Name of report
'stLinkCriteria = filter criteria
'intPreview = 0 print directly to printer _
= 2 print preview
'Clear printed flag
intPrinted = False
'Open report
DoCmd.OpenReport stDocName , intPreview, , stLinkCriteria
if intPreview = 0 then
intPrinted = True
Debug.Print "Printed Successfully"
End if
exit_proc:
Exit Function
err_proc:
Debug.Print "Print Failed"
Resume exit_procEnd Function
End Function
--------------------------------------------------------------------------------
3. 在打印预览工具栏上创建新的打印按钮
或修改现有的打印按钮
a. 将打印及打印预览按钮的 动作改为 '=PrintDialog()'
4. 在报表的关闭事件中 On_Close 添加如下代码
--------------------------------------------------------------------------------
If intPrinted = True Then
'Run code for when report was printed successfully
End If
--------------------------------------------------------------------------------
5. 在窗体上要打印或预览报表时使用如下代码
--------------------------------------------------------------------------------
PrintReport "ReportName", "Criteria", intPreview
'Check if report was printed
'- The following lines of code are only needed if the report is printed directly (ie not previewed)
' if the intpreview is always set to 2 then the following lines can be deleted
If intPreview = 0 then
If intPrinted = True then
'Run code for when report was printed successfully
Else
'Run code for when report was just previewed OR the print failed
End If
End If
--------------------------------------------------------------------------------
intPreview = 0 to print directly
intPreview = 2 to preview the report
Edited as requested by Bernie
Edited by: VanThienDinh on Tue Jul 29 6:23:49 EDT 2008.
翻译 : tmtony |
|