2009-03-29 1 views
0

Я написал программу, которая будет добавлять, удалять, сохранять и искать записи в базе данных (набор записей). Однако я делал это в команде. Моя задача состояла в том, чтобы добавить функцию поиска в программу, которая у меня есть; однако у меня возникают проблемы с добавлением сообщения об ошибке, когда кто-то вводит слово/все, что отсутствует в базе данных/наборе записей.Как получить значение, указывающее, обнаружено ли Recordset.Find что-нибудь?

Так, например, в текстовом поле (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 

редактировать:. Просто хочу сказать, проблема что каждый раз, когда я нажимаю кнопку «найти», появляется сообщение «NO RECORD FOUND» в msgbox, даже если он находит ответ, но также появляется этот msgbox, если вы также вводите тарабарщину.

Thanks для вашего времени

С уважением Haroon

ответ

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 

Вместо того, чтобы проверить, что свойство Value является истинным, вам нужно проверить EOF и BOF. Они означают End Of File и Begin Of Of File. Итак, если это правда, то вы не «внутри» набора записей, а это значит, что вы ничего не нашли.

+0

Thankyou так много! <3 – Harry