在Access中,我创建了一个包含Text1,List1和Command1元素的表单。
命令按钮的代码为:
Private Sub Command1_Click()
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set cmd = New ADODB.Command
Set rs = New ADODB.Recordset
con.Open "Provider=sqloledb;Data Source=192.168.100.41,1433;Network Library=DBMSSOCN;Initial Catalog=xxx;User ID=xxx;Password=xxx;"
cmd.ActiveConnection = con
cmd.CommandTimeout = 0
cmd.Parameters.Append cmd.CreateParameter("@keyword", adVarChar, adParamInput, 100, Trim(Text1.Value))
cmd.CommandText = "stored_procedure"
Set rs = cmd.Execute(, , adCmdStoredProc)
If (rs.RecordCount <> 0) Then
Do While Not rs.EOF
Me.List1.AddItem (rs.Fields(0).Value & " | " & rs.Fields(1).Value & " | " & rs.Fields(2).Value)
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
Set cmd = Nothing
con.Close
Set con = Nothing
End Sub
当我尝试运行代码时,什么都没有发生。没错好像按钮是空的。
SP在SQL Server中正常工作。
相同的按钮代码,可以在Excel表单中正常工作。
如果我将SP部分替换为[rs.open“在关键字类似..的表中选择*”,则工作正常
谢谢
答案 0 :(得分:0)
您可能需要使用客户端游标,我将debug.print rs.RecordCount来检查其认为是返回的记录。
conn.cursorlocation=aduseclient