如何获取指示Recordset.Find是否找到任何内容的值?

时间:2009-03-29 15:08:52

标签: error-handling vbscript ado recordset

我编写了一个程序,可以添加,删除,保存和搜索数据库(记录集)中的记录。但是我在一个团队中这样做。我的任务是将搜索功能添加到我拥有的程序中;但是,当有人输入一个不在数据库/记录集中的单词/任何内容时,我遇到了添加错误消息的问题。

因此,例如在文本框(txtFindBox.Text)中,如果他们输入“ashbndash”,则会出现错误消息。我已经注释掉了我自己的错误信息框,但请告诉我出错的地方:(

以下是查找按钮的代码。

Private Sub cmdFindDB_Click()
adoCustomer.Recordset.MoveFirst
If optLastName.Value = True Then
adoCustomer.Recordset.Find "LastName='" & txtFindBox.Text & "'"
'Else
'MsgBox ("NO RECORD FOUND")
End If
If OptFirstName.Value = True Then
adoCustomer.Recordset.Find "FirstName='" & txtFindBox.Text & "'"
'Else
'MsgBox ("NO RECORD FOUND")
End If
End Sub

编辑:就像说问题是,每当我按下“找到”按钮时,它会在msgbox中找到“NO RECORD FOUND”消息,即使它找到答案,它也会出现msgbox如果你输入乱码。

感谢您的时间

关心Haroon

1 个答案:

答案 0 :(得分:2)

以下是如何执行您要执行的操作的示例:METHOD: Recordset::Find

代码示例:

adoCustomer.Recordset.MoveFirst
adoCustomer.Recordset.Find "LastName='" & txtFindBox.Text & "'"
If (adoCustomer.Recordset.BOF = True) OR (adoCustomer.Recordset.EOF = True) Then
   MsgBox "Record not found"
End If

您需要检查EOF和BOF,而不是检查Value属性是否为true。这些代表文件结束和文件开头。所以如果其中任何一个都是真的,那么你就不会在记录集里面,这意味着你没有找到任何东西。