使用VBA调用存储过程

维多利亚·杰伊

我正在使用Microsoft SQL Server 2008后端在Access 2010用户前端中工作。

Access中的表都链接到SQL Server数据库。

我有一个存储过程,该过程将新值(由参数提供)插入表中。

我之前曾问过类似的问题,并且在通过VBA中的Access Module传递参数时,调用存储过程得到了很好的答复

我不知道如何查找建立连接字符串所需的信息(例如:我不知道提供程序/服务器名称/服务器地址)。

我在这里找到一个问题,指出“如果您已经有一个指向SQL Server数据库的Access链接表,那么您可以简单地将其.Connect字符串与DAO.QueryDef对象一起使用以执行存储过程”-Access的连接字符串以调用SQL服务器存储过程

我试图实现此代码。为了传递参数,我尝试使用前面的示例。

我得到了错误

通话失败

在此行Set rst = qdf.OpenRecordset(dbOpenSnapshot)(更不用说我传递的参数代码可能还很遥远)。

Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect
qdf.sql = "EXEC dbo.upInsertToInstrumentInterfaceLog"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)

qdf.Parameters.Append qdf.CreateParameter("@BatchID", adVarChar, adParamInput, 60, BatchID)
qdf.Parameters.Append qdf.CreateParameter("@InstrumentName", adVarChar, adParamInput, 60, InstrumentName)
qdf.Parameters.Append qdf.CreateParameter("@FileName", adVarChar, adParamInput, 60, FileName)
qdf.Parameters.Append qdf.CreateParameter("@QueueId", adVarChar, adParamInput, 60, QuenueId)

rst.Close
Set rst = Nothing
Set qdf = Nothing

谁能告诉我我的代码有什么问题以及为什么我会收到此错误?

哑萝卜

维多利亚

您可以使用ADO运行存储过程,如下所示...

Set mobjConn = New ADODB.Connection
mobjConn.Open "your connection string"
Set mobjCmd = New ADODB.Command
With mobjCmd
    .ActiveConnection = mobjConn 
    .CommandText = "your stored procedure"
    .CommandType = adCmdStoredProc
    .CommandTimeout = 0
    .Parameters.Append .CreateParameter("your parameter name", adInteger, adParamInput, , your parameter value)
    ' repeat as many times as you have parameters

    .Execute
End With

要获取连接字符串,可以使用以下行

Debug.Print CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect

在立即窗口中,它应该显示一个可以使用的连接字符串。

您可以尝试一下,如果有任何问题,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Knime调用存储过程

来自分类Dev

使用VBA运行存储过程

来自分类Dev

使用dblink和Java调用存储过程

来自分类Dev

如何使用JDBC调用PostgreSQL存储过程

来自分类Dev

在存储过程调用中使用默认参数

来自分类Dev

使用Dapper调用SQL存储过程

来自分类Dev

如何使用sqlalchemy调用存储过程

来自分类Dev

使用mysql递归调用的存储过程

来自分类Dev

使用Snowflake中的任务调用存储过程

来自分类Dev

如何使用JDBC调用PostgreSQL存储过程

来自分类Dev

如何使用sqlalchemy调用存储过程

来自分类Dev

使用参数从.Net调用DocumentDb存储过程。

来自分类Dev

phpmyadmin使用输入值存储过程调用

来自分类Dev

使用 Spring Data JPA 调用存储过程

来自分类Dev

C# - 使用类型调用存储过程

来自分类Dev

从VBA中的访问模块传递参数时调用存储过程

来自分类Dev

取消对存储过程的调用

来自分类Dev

CodeFirst调用存储过程

来自分类Dev

PDO存储过程调用

来自分类Dev

PDO存储过程调用

来自分类Dev

无法调用存储过程

来自分类Dev

从存储过程调用函数

来自分类Dev

在存储过程中调用存储过程

来自分类Dev

使用C#使用参数调用SQL Server存储过程

来自分类Dev

使用Web Api Odata使用参数调用存储过程

来自分类Dev

使用参数从另一个存储过程中调用存储过程

来自分类Dev

我可以在jdbc中调用存储过程,该存储过程使用mysql返回表吗?

来自分类Dev

SQL存储过程;使用输入参数调用另一个存储的过程

来自分类Dev

我可以在jdbc中调用存储过程,该存储过程使用mysql返回表吗?