Access的连接字符串,用于调用SQL Server存储过程

时间:2013-09-06 18:19:22

标签: ms-access stored-procedures ms-access-2007 adodb

使用Access 2007,我想用一个返回记录集的输入参数调用存储过程。

使用ADODB,除连接字符串外,这非常简单。我希望能够从特定的表派生服务器和数据库名称,该表始终指向正确的服务器和数据库。 (我不时通过重新链接100个左右的链表来重新连接到开发dbs进行测试。)

有没有办法从tabledef获取服务器和数据库名称而不解析整个事情?有房产吗?我还没找到一个......

最终查询非常简单:EXEC sp_DeleteProjects N'12,24,54'删除项目12,24和54,并返回记录集(单行),其中包含各种子表条目的已删除记录计数。

1 个答案:

答案 0 :(得分:6)

如果您已经有一个指向SQL Server数据库的Access链接表,那么您只需使用其.Connect字符串和DAO.QueryDef对象来执行存储过程,如以下VBA代码所示:

Sub CallSP()
Dim qdf As DAO.QueryDef, rst As DAO.Recordset
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("dbo_MyTable").Connect
qdf.SQL = "EXEC dbo.MyStoredProcedure"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
Debug.Print rst(0).Value
rst.Close
Set rst = Nothing
Set qdf = Nothing
End Sub