我有一个表格全部设置,我试图返回一个记录集。我已经尝试过这百万种方式并获得各种错误信息。我能看到的情况是我的连接字符串没有经过。我检查了我的拼写,并且验证了sp在数据库中。
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSQL As String
Dim strOutput As String
strSQL = " exec my sp"
cnn.connectionstring = "my connectionstring which is good"
cnn.open
rs.open strSQL, cnn
Do Until rs.EOF 'error here, Operation is not allowd when object is closed
strOutput = strOutput + rs.Fields(1)
rs.MoveNext
Loop
MsgBox strOutput
有点卡在那里,我已经秃了所以我不能再把头发拉了出来。请提供一些指导。
编辑:我已将SET NOCOUNT ON
添加到我的sp中,似乎rs已打开,但现在我的错误出现在下一行,"项目无法在所请求的集合中找到名称或序数"
答案 0 :(得分:0)
我无法测试代码的最后一部分用于设置和打开连接尝试更改代码,如下所示:
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSQL As String
Dim strOutput As String
strSQL = " exec my sp"
Set cnn = New ADODB.Connection
cnn.Open "Your connection string"
Set rs = New ADODB.Recordset
rs.Open strSQL, cnn, adOpenStatic
答案 1 :(得分:0)
对于遇到这个问题的任何人来说,我的问题实际上非常简单。记录集设置为从sp中返回一个值并输出参数。 Recordset字段从0开始,而不是1,因此我的错误。
strOutput = strOutput + rs.Fields(0)
这就是我需要做的一切。