【问题标题】:Access report: Determining the form the report was called from访问报告:确定调用报告的形式
【发布时间】:2010-11-18 22:55:26
【问题描述】:

是否可以确定调用报告的表单名称?我想在报告中编写一些 VBA 代码来确定从哪里调用报告。 我有 Access 2003。

【问题讨论】:

    标签: ms-access vba report


    【解决方案1】:

    您可以这样打开报告:

    DoCmd.OpenReport "reportFoo", acPreview, , , , Me.Name
    

    报告中有这样的内容:

    Private Sub Report_Open(Cancel As Integer)
        If "" <> Me.OpenArgs Then
            MsgBox Me.OpenArgs ' display caller form's name
        End If
    End Sub
    

    【讨论】:

    • 在发布之前,我在 Ms Access 2003 上对其进行了测试。
    • OpenArgs 参数在 2002 年之前在 Access 中不存在,我认为(不确定它是否是在 2002 年——它可能是在 2003 年引入的)。
    【解决方案2】:

    除非您自己设置,否则这是不可能的。您可以写入一个变量,或者,如果表单保持打开状态,则将信息存储在表单上。

    【讨论】:

    • 嗯,如果他不知道打开报表的表单是什么,他如何将表单名称存储在报表中?
    • 对不起,我不明白你的意思,我说如果表单保持打开状态,将信息存储在表单上,​​可以从报告中检查表单,或者将表单和报告名称写入一个变量,是不是?
    【解决方案3】:

    一种方法是创建一个始终打开任何报告的 report_caller 类。它需要一个名为“openReport”的方法,该方法接受进行调用的表单的名称和正在打开的报表的名称。然后它可以有一个公共方法来允许报表获取打开的表单的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多