Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在执行报表打开事件之前访问报表运行查询_Ms Access_Vba_Ms Access 2003 - Fatal编程技术网

Ms access 在执行报表打开事件之前访问报表运行查询

Ms access 在执行报表打开事件之前访问报表运行查询,ms-access,vba,ms-access-2003,Ms Access,Vba,Ms Access 2003,我有一个名为AdmQuery的查询、一个名为Admform的表单和一个名为AdmReport的报表。在Admreport的Open_事件中,我调用了AdmForm,将开始日期和结束日期输入到两个未绑定的框中,并使用该框执行查询并在报告上显示其结果 但问题是,当我运行报表时,对报表的查询和打开事件一起运行,因为表单本身会随报表一起打开(最初没有数据)。因此,我必须关闭报告,在表单上输入日期,然后通过表单上的另一个按钮预览报告,一切正常 是否有任何方法仅在执行report\u Open\u事件后才延

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

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

是否有任何方法仅在执行report\u Open\u事件后才延迟运行基础查询的访问报告


我使用access 2003。

在对话框模式下打开
AdmForm
,强制
AdmReport
Report\u Open
过程等待用户在
AdmForm
中输入日期值

我的
AdmForm
包含一个名为
cmdOK
的命令按钮,它的单击事件以隐藏模式重新打开表单,从而允许
AdmReport
报告打开
过程继续。虽然
AdmForm
现在已隐藏,但其文本框及其包含的值将可供
AdmQuery
(AdmReport的记录源)使用

下面是命令按钮单击事件的代码

Private Sub cmdOK_Click()
    DoCmd.OpenForm Me.Name, acNormal, , , , acHidden
End Sub
这是我的
AdmReport
版本背后的代码。我用Access2007对它进行了测试,但我相信它也应该用Access2003

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

注意,我为
AdmReport
包含了一个
Report\u Close()
过程。其目的只是在对话框模式下关闭(现在隐藏的)
AdmForm

打开
AdmForm
,强制
AdmReport
Report\u Open
过程等待用户在
AdmForm
中输入日期值

我的
AdmForm
包含一个名为
cmdOK
的命令按钮,它的单击事件以隐藏模式重新打开表单,从而允许
AdmReport
报告打开
过程继续。虽然
AdmForm
现在已隐藏,但其文本框及其包含的值将可供
AdmQuery
(AdmReport
的记录源)使用

下面是命令按钮单击事件的代码

Private Sub cmdOK_Click()
    DoCmd.OpenForm Me.Name, acNormal, , , , acHidden
End Sub
这是我的
AdmReport
版本背后的代码。我用Access2007对它进行了测试,但我相信它也应该用Access2003

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

注意,我为
AdmReport
包含了一个
Report\u Close()
过程。其目的仅仅是关闭(现在隐藏)
AdmForm

我发现,保持表单打开和隐藏通常是有用的,因为相同的日期可能用于各种报告或再次打印相同的报告。当然,这在很大程度上取决于应用程序。谢谢各位,让我试试这个,我会回复你们的!!杰出的我阅读了您之前的评论,认为它不适用于Access 2003,因此使用2003进行了测试。现在我回来了,我看到你也发现它确实适用于Access 2003。是的,我忽略了一些东西,但一旦我纠正了它,它就像一个符咒。。。。。再次感谢!!我发现,让表单保持打开和隐藏状态通常是有用的,因为相同的日期可能用于各种报告或再次打印相同的报告。当然,这在很大程度上取决于应用程序。谢谢各位,让我试试这个,我会回复你们的!!杰出的我阅读了您之前的评论,认为它不适用于Access 2003,因此使用2003进行了测试。现在我回来了,我看到你也发现它确实适用于Access 2003。是的,我忽略了一些东西,但一旦我纠正了它,它就像一个符咒。。。。。再次感谢!!