访问报告在执行报告打开事件之前运行查询

时间:2012-07-08 00:58:53

标签: ms-access vba access-vba ms-access-2003

我有一个名为AdmQuery的查询,一个名为Admform的表单和名为AdmReport的报告。在Admreport的Open_Event中,我已调用AdmForm将开始日期和结束日期输入到两个未绑定的框,并使用它来执行查询并在报告上显示其结果。

然而问题在于,当我运行报表时,报表上的查询和open事件一起运行,因为表单本身随报表一起打开(最初没有数据)。因此,我必须关闭报表,在表单上输入日期,然后通过表单上的另一个按钮预览报表,一切都很好。

有没有办法在执行Report_Open_Event后延迟运行基础查询的访问报告?

我使用access 2003。

1 个答案:

答案 0 :(得分:4)

在对话框模式下打开AdmForm,强制AdmReport的{​​{1}}程序在用户输入Report_Open中的日期值时等待。

我的Admform包含一个名为AdmForm的命令按钮,它的点击事件以隐藏模式重新打开表单,这允许cmdOK的{​​{1}}过程继续。虽然AdmReport现在已隐藏,但其文本框及其包含的值将可供Report_OpenAdmForm的记录来源)使用。

以下是命令按钮的点击事件的代码。

AdmQuery

以下是我的AdmReport版本背后的代码。我使用Access 2007进行了测试,但相信它也适用于Access 2003。

Private Sub cmdOK_Click()
    DoCmd.OpenForm Me.Name, acNormal, , , , acHidden
End Sub

注意我为AdmReport添加了Option Compare Database Option Explicit Const mcstrForm As String = "AdmForm" Private Sub Report_Close() DoCmd.Close acForm, mcstrForm End Sub Private Sub Report_Open(Cancel As Integer) DoCmd.OpenForm mcstrForm, acNormal, , , , acDialog End Sub 程序。目的只是关闭(现在隐藏)Report_Close()