Sql server Ms Access-调用返回recordsset的存储过程

Sql server Ms Access-调用返回recordsset的存储过程,sql-server,ms-access,Sql Server,Ms Access,我正在与一个在MS Access 2007上开发的旧而庞大的系统作斗争,我负责维护它(包括实施更改) 系统与SQL Server交互(2012) 目前,我需要实现一个更改,其中需要调用一个新的存储过程,该过程返回一个简单的记录集,每个记录都是一个字符串 我尝试使用应用程序中已经存在的一些代码(使用ADO并复制到我正在处理的表单中)进行调用,但我尝试的都不起作用 以下是我尝试使用的代码: glblsqlstrToLabels = "EXEC p_Labels_Print 1 , 2878954 ,

我正在与一个在MS Access 2007上开发的旧而庞大的系统作斗争,我负责维护它(包括实施更改)

系统与SQL Server交互(2012)

目前,我需要实现一个更改,其中需要调用一个新的存储过程,该过程返回一个简单的记录集,每个记录都是一个字符串

我尝试使用应用程序中已经存在的一些代码(使用ADO并复制到我正在处理的表单中)进行调用,但我尝试的都不起作用

以下是我尝试使用的代码:

glblsqlstrToLabels = "EXEC p_Labels_Print 1 , 2878954 , 'OC9991' , '89029' , 4 , 1 , 'dummy'"
尽管我使用的连接字符串与整个应用程序使用的连接字符串完全相同,但执行上述语句会返回一条错误消息(类似于…not open…

我开始怀疑调用函数的方式有问题(例如,没有为函数定义任何参数,并期望类似于
select
语句的行为)

我们将非常感谢您的帮助

编辑

以下是描述我工作所需的代码片段:

        Dim RS As Recordset 

        ' Connection string is: Provider=Microsoft.Access.OLEDB.10.0;Persist Security Info=True;Data Source=****;User ID=****;Password=****;Initial Catalog=***;Data Provider=SQLOLEDB.1

        MyCommand = "EXEC p_Labels_Print 1 , 2878954 , 'OC9991' , '89029' , 4 , 1 , 'asdasd'"

        RS.Open MyCommand, CurrentProject.Connection

        Do Until RS.EOF
            Print <record retrieved>
        Loop

        RS.Close
        Set RS = Nothing
Dim RS作为记录集
'连接字符串为:Provider=Microsoft.Access.OLEDB.10.0;持久安全信息=True;数据源=***;用户ID=***;密码=**;初始目录=***;数据提供程序=SQLOLEDB.1
MyCommand=“EXEC p_Labels_Print 12878954,'OC9991','89029',4,1,'asdasd'”
RS.打开MyCommand,CurrentProject.连接
直到R.EOF为止
印刷品
环
RS.Close
设置RS=无

我得到的错误是:
错误:对象关闭时不允许操作。

您需要正确使用ADO和命令,您不能只打开存储过程

使用以下Microsoft样板代码:

   Set Cmd1 = New ADODB.Command
   Cmd1.ActiveConnection = Conn1
   Cmd1.CommandText = "sp_AdoTest"
   Cmd1.CommandType = adCmdStoredProc
   Cmd1.Parameters.Refresh
   Cmd1.Parameters(1).Value = 10
   Set Rs1 = Cmd1.Execute()

其中
Conn1
是ADODB连接,请填写参数和存储过程名称。

请编辑您的问题,并包括调用该过程的完整代码和完整+准确的错误消息。谢谢。您在SQL Management Studio中测试过该命令吗?请查看示例代码,并实现它,并向我们显示您遇到的任何错误谢谢@Andre。我用相关的代码和收到的错误消息编辑了这个问题。@Kris,SP是在Management Studio中测试的,非常有用。谢谢你,Erik。我是按照建议做的,现在我没有发现错误。如何从记录集中获取记录?