我正在尝试使用"图片"为Access报告添加水印。财产并遇到了问题。以下代码有效,图像在预览和打印报告时显示/打印,但在从宏直接打印报告时不起作用(屏幕上无法显示)。 " GrandTotal"是报表上的绑定文本框,它是记录源中字段的总和。我将不胜感激任何从打印预览和打印宏打印水印的建议。
Private Sub Report_Load
' put up the watermark if needed
If GrandTotal.Value < 2000 Then
Me.Picture = <<picture file name including full path>>
End If
End Sub
答案 0 :(得分:2)
由于您打印的报表没有呈现到屏幕上,因此从不会使用打开/加载事件,因为它们从未被使用过。另一种方法是在打印预览中打开报告,并使用OpenArgs
表示您要打印它
Private Sub SomeButton_Click()
DoCmd.OpenReport "DetailView", acViewPreview, , , acHidden, "Print"
End Sub
然后做你正常装载的东西
Private Sub Report_Load
' put up the watermark if needed
If GrandTotal.Value < 2000 Then
Me.Picture = <<picture file name including full path>>
End If
End Sub
当加载完成后,您的表单将激活,这时您可以打印
Private Sub Report_Activate()
If Me.OpenArgs = "Print" Then
On Error GoTo ErrorHandler
DoCmd.OpenReport "Report1", acViewPreview
'Opens print dialog for current screen (report in this case):
DoCmd.RunCommand acCmdPrint
End If
DoCmd.Close
ErrorHandler:
If Err.Number <> 0 And Err.Number <> 2501 Then
MsgBox "Error: " & Err.Number & vbNewLine & Err.Description
Exit Sub
End If
End Sub
表单永远不会显示,所以看起来你之前已经设置了它,但是加载/打开事件会像正常一样触发,因为报告实际上已经呈现。