如何创建"没有结果"搜索表单中的消息框?

时间:2014-07-19 19:37:05

标签: ms-access access-vba

我有一个访问数据库,我有一个“快速搜索”表单,它是一个简单的文本框,可以在搜索的记录上打开我的“客户查看器”表单。现在我要添加的是某种错误处理程序,在搜索不匹配的情况下提示“无结果”消息框(而不是当前它只打开我的“客户查看器”表单的情况)没有数据。

这是我当前点击搜索按钮的代码:

Private Sub btnSearch_Click()
DoCmd.OpenForm "frmCustomerViewer", acNormal, , "[FirstName]='" & Me.txtSearchBox & "' OR [LastName]='" & Me.txtSearchBox & "'"
End Sub

1 个答案:

答案 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, "'", "''") & "'"