【问题标题】:Finding specific data in SQL Table在 SQL 表中查找特定数据
【发布时间】:2013-10-29 17:41:58
【问题描述】:

我希望有人可以帮助我,我是 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

谢谢!

【问题讨论】:

  • 我已经回答了为什么你只看到第一行。但是,您应该设置您的查询,以便它只返回正确的行。
  • @Taemyr ..成功了!谢谢..回答真的很感激:D
  • 好 :) 如果您能投票并接受,那就太好了。

标签: mysql sql sql-server vba excel


【解决方案1】:

您退出循环内的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-31
    • 2015-02-24
    • 1970-01-01
    • 2021-11-24
    • 2019-04-11
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多