【发布时间】: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