我在MS Access中有一个表单,其中单击按钮时,我正在运行以下代码。我的目标是让用户在表单上的按钮单击上输入一个值,然后使用openargs发送该值以进行报告。我想在该查询中添加openargs参数,但是当我在输入框上输入一个值并按Enter时,会出现一个名为“输入参数”的提示,要求我为报表中的所有字段输入值。我是VBA的新手,也不知道我做错了什么
表格
strInput = InputBox("Which value did you want to print?")
DoCmd.OpenReport "01-REPORT", acPreview, , , , OpenArgs = strInput
报告
在我关于公开报告事件的报告中
Private Sub Report_Open(Cancel As Integer)
If Me.OpenArgs > 0 Then
Me.RecordSource = "PRINT FINAL DATA WHERE " & "InvNum = '" & Me.OpenArgs & "'"
End If
End Sub
* PRINT FINAL DATA *是查询的名称,它是报表的记录源。
答案 0 :(得分:0)
要打开包含过滤数据的报告,您可以执行以下操作:
RecordSource
集查询包含所有数据
(您的*PRINT FINAL DATA *
)。并保存它。 对于单击处理程序中的表单,请编写此代码(我忽略所有错误检查等)
strInput = InputBox("Which value did you want to print?")
DoCmd.OpenReport "01-REPORT", acPreview, , "InvNum = '" & strInput & "'"
OpenReport
的第四个参数是WhereCondition
,可在执行报告之前过滤数据。
P.S。报告要求提供每个字段的值,因为打开报告时,报告没有在RecordSource
中保存值。或查询没有这样的字段。