我的问题很简单,经过多次搜索,我找不到这个问题的简单答案。许多答案都是关于更复杂的编码情况,我很难与这个问题联系起来。
我正在从表格中打开一份报告。我可以将username参数指定为“bill”,报告仅显示“bill”是用户名的记录。如果我手动将“账单”更改为“tom”,它仍然有效并显示用户名为“tom”的记录
Private Sub Command11_Click()
Const cstrForm2 As String = "Report1"
'DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]=" & "'bill'"
End Sub
如果我使用以下代码,并输入Me.username(用户名是文本框的名称,并且是无限制的)
DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]=" & Me.username
MS Access会提示我输入参数值。如果我输入参数值“tom”或“bill”,我会在报告中获得正确的数据。
如何摆脱参数输入框,基本上如何传递正确的参数值格式以获得我想要的结果?我认为这可能与使用引号和其他字符的组合有关。
答案 0 :(得分:0)
答案是先创建一个查询。显然创建一个查询可以避免这个问题。
在设计视图下,在查询的条件部分中为相关表创建查询:
在条件
下输入以下内容[Forms]![Form1]![username]
其中Form1是表单的名称,username是文本框的名称。
当您运行查询时,请使用查询作为基础创建报告。
答案 1 :(得分:0)
您仍然需要单引号:
DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]='" & Me!username.Value & "'"