2013-10-21 61 views
0

我希望有人可以帮助我,我是SQL新手,这让我感到困惑。 我想通过inputbox在mySQL表中找到特定/匹配的数据,该代码只能找到第一行的数据,并且不会识别第二行和其余数据在我的数据库的行中。在SQL中查找特定数据表

这里是我的代码..

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 

谢谢!

+0

我已经给了一个答案,为什么你只看到第一行。但是,您应该设置您的查询,以便它只返回正确的行。 – Taemyr

+0

@Taemyr ..它的工作!谢谢..答案真的appreaciated:D – user2123999

+0

好:)不错,如果你可以upvote和接受。 – Taemyr

回答

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 
相关问题