我正在使用 Access 2010 用户前端和 Microsoft SQL Server 2008 后端工作。
Access 中的表都链接到 SQL Server 数据库。
我有一个存储过程,它将新值(由参数提供)插入到表中。
我之前问过类似的问题并得到了很好的答案在 VBA 中从访问模块传递参数时调用存储过程 https://stackoverflow.com/questions/24248870/calling-stored-procedure-while-passing-parameters-from-access-module-in-vba
我不知道如何查找创建连接字符串所需的信息(例如:我不知道提供商/服务器名称/服务器地址)。
我在这里发现了一个问题,指出“如果您已经有一个指向 SQL Server 数据库的 Access 链接表,那么您可以简单地使用它的.Connect
带有 DAO.QueryDef 对象的字符串来执行存储过程”-Access 调用 SQL Server 存储过程的连接字符串 https://stackoverflow.com/questions/18664139/connection-string-for-access-to-call-sql-server-stored-procedure
我尝试实现这段代码。为了传递参数,我尝试使用前面的示例。
我收到错误
呼叫失败
在线上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
谁能告诉我我的代码可能有什么问题以及为什么我会收到此错误?