2009-08-12 100 views
1

调用报告的形式有无论如何确定报告被调用的表单名称吗?我想在报告中编写一些VBA代码来确定报告的来源。 我有Access 2003.访问报告:确定从

回答

3

您可以打开一个报告是这样的:

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 
+0

我在发布之前在Ms 2003中测试过它。 – 2009-08-12 13:15:03

+0

在2002年之前,Access中不存在OpenArgs参数,我想(不知道它是否在2002年 - 也许 - 它可能是在2003年推出的)。 – 2009-08-12 19:17:11

1

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

+0

嗯,如果他不知道打开报告是什么形式,他如何在报告中存储表格名称? – 2009-08-12 19:05:06

+0

对不起,但我没有明白你的观点,我表示如果表格保持打开状态,表格可以从报告中检查,或者表单和报告名称写入变量,yesno? – Fionnuala 2009-08-12 19:36:55

1

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