DoCmd.OpenReport请求值Access07

时间:2015-09-11 13:55:47

标签: vba ms-access ms-access-2007 jet

我有一个表单,可以根据组合框选择打开报表。 看起来像。 enter image description here

发票发货按钮通过

打开报告

DoCmd.OpenReport "ItemList4", acViewReport, , "ShipRef = " & Me.SRCB

SRCB是货件标签旁边的组合框。

当点击发票出货按钮时,我总是被问到S100018的参数值是什么,所以显然它知道该值是什么,但是在打开报告时不会将其应用于过滤器

enter image description here

如何防止这种情况发生?

3 个答案:

答案 0 :(得分:1)

我总是使用where子句创建一个查询,该子句引用表单中的textbox。然后我在查询上构建报告,选择1条记录,然后我得到报告。

我将展示一个快速演示,这是一个名为Persons的表: enter image description here

然后创建一个带有文本框的表单,我将表单命名为PersonFormenter image description here

现在创建一个query,从Persons表中选择所有内容。在where子句中,打开构建器,浏览到创建的表单并选择文本框。 enter image description here

然后我们根据report使用报告向导创建一个非常简单的queryenter image description here

现在我们返回创建的form并添加button。在按钮中,选择打开report

的选项

enter image description here

现在,如果您在Form view中打开表单,请在我的实例中输入名称Ivo。然后单击按钮。

enter image description here

当然,您必须根据上下文调整示例。

使用生成报告所需的数据创建query。然后在where clause中将query添加到显示您的货件ID的list box。然后让report获取查询中的数据

答案 1 :(得分:0)

问题似乎是报告。看起来它正在访问一个名为S100018的变量。这是预期的行为吗?

答案 2 :(得分:0)

问题是它没有将过滤器参数作为字符串

发送

它应该是这样的  DoCmd.OpenReport "ItemList4", acViewReport, , "ShipRef = '" & Me.SRCB & "'"