vba - 通过 VBA 打开由查询生成的报表,并为查询输入数据以创建表单
问题描述
我有 2 个报告(均由查询生成),我需要根据用户输入打开不同的报告,我尝试使用 DoCmd 设置参数然后打开表单,但它不起作用(我的猜测是因为我正在尝试将信息输入查询但打开表单)。
Sub macro1()
Dim year As Integer
Dim month As Integer
year = InputBox("What year would you want to get data from?")
month = InputBox("What month would you want to get data from")
DoCmd.SetParameter "[äëðñ ùðä]", year
DoCmd.SetParameter "[äëðñ çåãù]", month
If Not IsNull(DLookup("[÷åã èåøðéø]", "[àãîéðñèøöéä ùì úçøåéåú]", "DateDiff('m', [úàøéê çæøä îäèåøðéø], DateSerial(" & year & ", " & month & ", 1)) = 0")) Then
DoCmd.OpenReport "äëðñåú äåöàåú", acViewNormal
Else
DoCmd.OpenReport "äëðñåú äåöàåú ìôé çåãù", acViewNormal
End If
End Sub
现在它只是在到达打开的报告行(任一)时显示错误。该错误表明打开的报告不支持传输参数。
解决方案
而不是使用参数,使用WHERE Condition
参数OpenReport
例子:
DoCmd.OpenReport "My Report", acViewNormal, , "Year(MyDateField)=" & year & " AND Month(MyDateField)=" & month