【发布时间】:2014-08-07 15:48:36
【问题描述】:
我正在使用 Access 2010 用户前端和 Microsoft SQL Server 2008 后端。
Access 中的表都链接到 SQL server 数据库。
我有一个将新值(由参数提供)插入到表中的存储过程。
我之前问过类似的问题,得到了很好的回答Calling Stored Procedure while passing parameters from Access Module in VBA
我不知道如何找到创建连接字符串所需的信息(例如:我不知道提供者/服务器名称/服务器地址)。
我在这里发现了一个问题,上面写着“如果您已经有一个指向 SQL Server 数据库的 Access 链接表,那么您可以简单地将其 .Connect 字符串与 DAO.QueryDef 对象一起使用来执行存储过程”-@ 987654322@
我尝试实现此代码。为了传递参数,我尝试使用前面的示例。
我收到了错误
调用失败
在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
谁能告诉我我的代码有什么问题以及为什么会出现这个错误?
【问题讨论】:
-
这是标准的 Access 数据库还是 Access 数据项目?即表是通过 ODBC(标准数据库)链接的,还是您将数据项目直接连接到 SQL Server 数据库?
-
我不确定我没有创建数据库,我只是为它编写程序。有没有办法告诉?
-
不确定 Access 2010,但要看的东西...表是链接表还是它们看起来像本机表?在“文件”菜单选项下,您是否有设置与数据库连接的“连接”选项?
-
这些表是链接表,文件菜单中没有连接选项,但是有一个模块可以控制前端连接到的数据库。数据库存储在服务器上。我不知道这是否有帮助。
-
没关系。我去看看,给你想办法。
标签: sql-server vba ms-access stored-procedures