sql - MS Access Form - 文本框中的字符串,用于 LIKE 查询以过滤报告结果

标签 sql forms ms-access vba wildcard

我有一个表单,用户希望在文本框中输入项目名称的部分或完整字符串值,单击表单中的按钮,然后打开一个仅包含按这些结果过滤的项目的报告。例如,如果我输入“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.OpenReportWhereCondition 可能会很有用。使用 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/

相关文章:

vb.net - 每次操作后关闭 Access 数据库还是保持打开状态以供以后操作更好

vba - 在 Access 中使用 SQL Server 存储过程的输出参数

sql - 以下 SQL 查询的等效条件查询?

sql - 使用 PARTITION BY (HIVE) 时如何过滤掉组中的重复元素

python - 使用 Flask 将表单数据保存在 url 中

php - Symfony2 无效的动态表单,没有错误

mysql - 根据关键字获得最高值(value)

SQLite 大型数据库处理

javascript - 表单元素不打印?

ms-access - 微软 Access : An error in vba of my form