我有一个表单,用户希望在文本框中输入项目名称的部分或完整字符串值,单击表单中的按钮,然后打开一个仅包含按这些结果过滤的项目的报告。例如,如果我输入“Acc”,则project_name 字段中的所有结果将仅包含带有“Acc”的结果。
我可以通过查询让它正常工作(像“*”和[输入关键字]和“*”
),但我想从表单中执行此操作。我也想对其他一些字段执行此操作,并且我不想为每个字段创建新的报告和查询。我宁愿能够使用 VBA 和表单来完成此操作。
我的代码打开了报告,但没有结果。我什至尝试输入单个字母(即“a”)或其他明显的字符串,但没有成功。这是我的代码:
Private Sub Command0_Click()
Dim stDocName1 As String, strwhere1 As String
Dim stLinkCriteria1 As String
stDocName1 = "Grantlist"
strwhere1 = project_name = "Like *'" & Me![findproject] & "*'"
DoCmd.OpenReport stDocName1, acViewReport, , strwhere1, acWindowNormal
End Sub
最佳答案
将 strwhere1 =
的右侧设为一个字符串
仅使用 Like
而不是 = Like
将单引号移到 Like
后面的 *
之前
strwhere1 = "project_name Like '*" & Me![findproject] & "*'"
检查您传递给 DoCmd.OpenReport
的 WhereCondition 可能会很有用。使用 Debug.Print 将其显示在立即窗口中。您可以使用 Ctrl+g 转到那里。
Debug.Print strwhere1
DoCmd.OpenReport stDocName1, acViewReport, , strwhere1, acWindowNormal
关于sql - MS Access Form - 文本框中的字符串,用于 LIKE 查询以过滤报告结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55481300/