2017-05-26 93 views
0

我的问题是一个简单的问题,我经过多次搜索后找不到这个问题的简单答案。许多答案都是关于更复杂的编码情况,这些情况对我来说很难与这个问题联系起来。MS Access 2016 - 参数输入弹出式时使用where条件来打开报告

我正在从窗体打开报告。我可以将用户名参数指定为“账单”,报告只显示“账单”是用户名的记录。如果我手动更改“法案”,以“汤姆”它仍然有效,并显示记录,其中的用户名是“汤姆”

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

答案是先创建一个查询。显然创建一个查询可以避免这个问题。

创建有问题的表的查询,并在查询的条件部分,在设计视图:

输入在标准以下

[Forms]![Form1]![username] 

哪里Form1的是形式的名称用户名是文本框的名称。

当您运行查询时,使用查询作为基础创建报表。

0

你仍然需要单引号:

DoCmd.OpenReport cstrForm2, acViewPreview, WhereCondition:="[username]='" & Me!username.Value & "'"