将水印添加到 Access 报告页面

Adding watermark to a Access report page

我正在尝试使用 "Picture" 属性 向 Access 报告添加水印,并且 运行 成为一个问题。以下代码在预览和打印报告时有效,图像为 displayed/printed,但在直接从宏打印报告时无效(屏幕上看不到任何内容)。 "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

由于您正在打印报表而没有将其呈现到屏幕上,因此永远不会触发 open/load 事件,因为它们从未被使用过。另一种方法是在打印预览中打开报告并使用 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

表单从未显示,所以看起来您之前已经设置了它,但 load/open 事件将像正常情况一样触发,因为报告实际上已呈现。