2013-10-20 2 views
0

У меня есть этот код, который я использовал VBA для вставки, обновления и удаления данных в базе данных mySQL. У меня есть поле ввода для поиска определенных данных в таблице SQL, используя их число, когда я набираю номер, и когда есть соответствующая запись, программа говорит «Запись найдена». но ошибки программы каждый раз, когда я набираю номер и не имеет согласованных данных. Мой вопрос в том, что, как я могу вернуть сообщение об ошибке, которое говорит «Нет записи найдено», когда нет согласованных данных ?. Я изучаю vba как новичок, и некоторые используемые коды не были мне действительно знакомы .. Спасибо.Возврат сообщения об ошибке при вводе неправильного написания в поле ввода

Dim rs As New ADODB.Recordset 
myConn 
Dim holdstr As String 
holdstr = InputBox("Enter name") 
If holdstr = "" Then 
MsgBox "Please fill up the requirements", vbInformation, "Message" 
conn.Close 
Exit Sub 
End If 
rs.Open "SELECT * FROM lemployees where ENumber = '" & holdstr & "'", conn 

MsgBox "Record found!", vbInformation, "Message" 

UserForm2.TextBox2.Text = rs!ELName 
+0

Test значение 'rs.EOF' после вызова rs.Open –

ответ

0

Что вы хотите сделать, это проверить свойство Recordset RecordCount после того, как вы его открыли.

Dim rcCount As Integer 
rs.Open "SELECT * FROM lemployees where ENumber = '" & holdstr & "'", conn 
rcCount = rs.RecordCount 
If rcRecordCount = 0 Then 
    MsgBox "No Record found", vbInformation, "Message" 
Else 
    MsgBox "Record found!", vbInformation, "Message" 
    UserForm2.TextBox2.Text = rs!ELName 
End If 
+0

Кстати, если вы заметили, я использовал переменную rcCount, а просто используя свойство rs.RecordCount для "If" тест. В случае VB это действительно не нужно. Однако это хорошая привычка формироваться. Это связано с тем, что вы уверены, что код для загрузки переменной будет выполнен только один раз, и, когда он будет указан позже, вы уверены, что он хранится локально. Если это не имеет смысла, не беспокойтесь. Просто создайте привычку использовать локальную переменную для If и For Each loops и т. Д. – Jakester26

+0

@ Jakester26. Я пробовал код u дал, и он все еще говорит «Нет записи», хотя я поставил правильный номер. Где я могу вставить ваш код ?. возможно, он не работает хорошо, потому что я вставил его неправильно. – user2123999

+0

Вы назначаете количество записей одной переменной (rcCount) и считаете в инструкции If другой (rcRecordCount). – varocarbas

Смежные вопросы