选择时搜索功能运行时错误424

| 我的要求:使用VB表单和3个文本框在数据库中搜索数据。 1个文本框,我将输入(UserName) 1个用于定位的文本框 1个用于显示输出的文本框 我的代码是
Private Sub CommandButton3_Click()

Dim Cn As ADODB.Connection \'* Connection String

Dim oCm As ADODB.Command \'* Command Object

Dim sName As String
Dim rs As ADODB.Recordset
Dim uname As String
Set Cn = New ADODB.Connection

Cn.ConnectionString = \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\\test2.accdb;Persist Security Info=False\"
Cn.ConnectionTimeout = 40
Cn.Open
Set oCm = New ADODB.Command
oCm.ActiveConnection = Cn

‘Record Set
Set rs = New ADODB.Recordset

‘Select Operation
rs.Open \"SampleTable\", Cn, adOpenKeyset, adLockPessimistic, adCmdTable

uname = rs(\"UserName\")

rs.Open \"Select * from SampleTable where uname = \'\" & text1.Text & \"\'\", ActiveConnection, adOpenForwardOnly, adLockReadOnly, adCmdText

**\'Display the Output in TextBox3**
TextBox3.Text = rs(\"UserName\") + rs(\"Location\")

rs.Close
Cn.Close
End Sub
我可以理解没有发生大量数据,因此在Select语句中出现了运行时错误424。如何检索给定相应输入的数据?     
已邀请:
您无需打开桌子; searching1ѭ,然后再搜索。 不知道这是为了什么;
uname = rs(\"UserName\")
您应该跑步;
rs.Open \"Select * ...
(在同一RS上运行两次.Open而不关闭第一个,可能是导致您出错的原因) 您应该逃避您的输入;
replace$(text1.Text, \"\'\", \"\'\'\")
您应该在
.open
之后检查
rs.EOF
使用
&
而不是
+
连接字符串 更新
sub xxx
Dim Cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sName As String

Set Cn = New ADODB.Connection
Cn.ConnectionString = \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\\test2.accdb;Persist Security Info=False\"
Cn.ConnectionTimeout = 40
Cn.Open

Set rs = New ADODB.Recordset

sName = replace$(text1.Text, \"\'\", \"\'\'\")
rs.Open \"Select * from SampleTable where UserName = \'\" & sName & \"\'\", Cn, adOpenForwardOnly, adLockReadOnly, adCmdText

if (rs.eof) then
    msgbox \"no match\"
else
    TextBox3.Text = rs(\"UserName\") & \" \" & rs(\"Location\")
    rs.Close
end if

set rs = nothing
Cn.Close
set cn = nothing
end sub
    

要回复问题请先登录注册