【问题标题】:How to Use a Form to Search a Table and Display Results in a Report in Microsoft Access 2010如何在 Microsoft Access 2010 中使用表单搜索表格并在报表中显示结果
【发布时间】:2016-10-30 22:53:01
【问题描述】:

我对 Access 还很陌生,在弄清楚如何执行搜索时遇到了一些麻烦。 我有一个表,其中包含具有多个字段和一个名为“Serial”的主键字段的记录。

我创建了一个链接到该表的表单,它包含的只是一个文本框和一个按钮,用户可以在其中输入任何单词或序列号以及任何内容,并且将在该表中搜索具有字段的记录符合输入的条件。

我已经到了可以搜索表格并找到任何匹配的记录的地步,但我不知道如何将此记录(以及任何其他匹配的记录)发布到新创建的报告中,以便用户可以看到所有符合他条件的结果。

我的代码就是这样,输出只给出一个空白报告。

msgbox 行总是为每次搜索输出正确的序列号。

我认为该问题与 DoCmd.OpenReport 行有关。

Do While Not rs.EOF 'iterate through table and check all fields
For Each Field In rs.Fields
    If Field = SearchBar.Value Then
        found = True
        MsgBox (rs.Fields("Serial")) 'debugging
        **DoCmd.OpenReport "Asset Inv", acViewReport, , "[Serial] = '" & rs.Fields("Serial") & "'"**
        Exit For
    End If
Next Field

If found Then
    Exit Do            
Else
    rs.MoveNext
End If
Loop

感谢您的帮助!

【问题讨论】:

  • Serial 是一个字符串?有错误处理程序吗?询问参数(错字)?您应该考虑使用过滤器而不是遍历 rs。遍历查询的字段并将它们组合在过滤器中。 `strFilter = strFiler & "[" & rs.Fields.Name & "] = '" & SearchBar.Value & "' OR "'

标签: ms-access search vba report dao


【解决方案1】:

如果您想根据一个关键字在多个字段中搜索,请执行以下步骤:

1-假设我们有下面的表格,想要在多个字段中使用关键字进行搜索

2- 打开查询设计并选择您想要搜索的表

3 - 通过 Dbl 单击所需字段向查询添加字段

4-现在单击空白列并转到设计选项卡

5-保存查询

5-点击生成器

6-从列表中选择您保存的查询

7-选择您要搜索的字段并附加它们

concatinate Fields That You Want Search in

8-现在您有了包含所有所需字段的新列

9-Now In Criteria Section Type Like ""+[]+""

10-运行查询

Write "Like" Sql Command And Run Query

好好享受吧……

【讨论】:

  • 第 8 步之后我没有得到有效的搜索。在将其连接到表单搜索框之前,我运行了查询本身并手动输入了搜索词,但我没有得到任何词的任何结果.
  • 请注意,如果您有数字字段,则必须将它们转换为字符串值。您可以使用 str([NumericFieldName]) 然后与其他字段连接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多