我有一个访问数据库,我有一个“快速搜索”表单,它是一个简单的文本框,可以在搜索的记录上打开我的“客户查看器”表单。现在我要添加的是某种错误处理程序,在搜索不匹配的情况下提示“无结果”消息框(而不是当前它只打开我的“客户查看器”表单的情况)没有数据。
这是我当前点击搜索按钮的代码:
Private Sub btnSearch_Click()
DoCmd.OpenForm "frmCustomerViewer", acNormal, , "[FirstName]='" & Me.txtSearchBox & "' OR [LastName]='" & Me.txtSearchBox & "'"
End Sub
答案 0 :(得分:0)
使用DCount
确定符合搜索条件的行数。如果一行或多行匹配,请打开表单。如果没有匹配的行,则显示带有MsgBox
的消息。
Private Sub btnSearch_Click()
Dim strCriteria As String
strCriteria = "[FirstName]='" & Me.txtSearchBox & _
"' OR [LastName]='" & Me.txtSearchBox & "'"
If DCount("*", "YourTableOrQueryNameHere", strCriteria) > 0 Then
DoCmd.OpenForm "frmCustomerViewer", acNormal, , strCriteria
Else
MsgBox "no results"
End If
End Sub
但是当Me.txtSearchBox
包含撇号时,该方法会中断。你可以用两个单个撇号代替每个撇号来避免这种风险......
strCriteria = "[FirstName]='" & Replace(Me.txtSearchBox, "'", "''") & _
"' OR [LastName]='" & Replace(Me.txtSearchBox, "'", "''") & "'"