0

我希望有人可以帮助我,我是 SQL 新手,这让我很困惑。我想通过输入框在 mySQL 表中查找特定/匹配的数据,此代码仅在第一行中查找数据,而无法识别我数据库行中的第二个和其余数据..

这是我的代码..

Dim rs As New ADODB.Recordset
myConn
Dim holdstr As String
holdstr = InputBox("Enter Number")
rs.Open "SELECT * FROM lemployees ", conn
Do Until rs.EOF

If holdstr = "" Then
conn.Close
Exit Sub
End If

If holdstr = rs!ENumber Then
MsgBox "Record found!", vbInformation, "Message"

UserForm2.lblnum.Caption = rs!ENumber
UserForm2.TextBox2.Text = rs!ELName
UserForm2.TextBox3.Text = rs!EFName
UserForm2.TextBox4.Text = rs!EMName
UserForm2.boxPos = rs!EDepartment
UserForm2.TextBox6.Text = rs!EAge
UserForm2.TextBox7.Text = rs!EHourlyPaid
UserForm2.TextBox8.Text = rs!ECitizen

conn.Close
Exit Sub
Else
MsgBox "Record not found", vbInformation, "Message"
Exit Sub
End If
Loop

谢谢!

4

1 回答 1

0

您退出循环内的 Sub。即使没有找到您要查找的项目。

尝试

Dim rs As New ADODB.Recordset
myConn
Dim holdstr As String
holdstr = InputBox("Enter Number")

If holdstr = "" Then
  Exit Sub
End If

rs.Open "SELECT * FROM lemployees ", conn
Do Until rs.EOF
  If holdstr = rs!ENumber Then
    MsgBox "Record found!", vbInformation, "Message"

    UserForm2.lblnum.Caption = rs!ENumber
    UserForm2.TextBox2.Text = rs!ELName
    UserForm2.TextBox3.Text = rs!EFName
    UserForm2.TextBox4.Text = rs!EMName
    UserForm2.boxPos = rs!EDepartment
    UserForm2.TextBox6.Text = rs!EAge
    UserForm2.TextBox7.Text = rs!EHourlyPaid
    UserForm2.TextBox8.Text = rs!ECitizen

    conn.Close
    Exit Sub
    End If
  Loop
MsgBox "Record not found", vbInformation, "Message"
conn.Close
Exit Sub
于 2013-10-21T09:46:32.423 回答