【发布时间】:2015-04-21 23:49:49
【问题描述】:
我创建了一个直通查询并尝试从中调用存储过程。
我能够成功地在 sql server 数据库上执行查询,但是当涉及到存储过程时,我收到一个错误:
"ODBC call Failed"
问题仅在于存储过程。查询执行良好。
这是我的代码:
Dim qdf As DAO.QueryDef, rst As ADODB.Recordset
Dim DatabaseName As String
Dim Server As String
ServerName = "XXXX"
DatabaseName = "XXX"
Set qdf = CurrentDb.CreateQueryDef("")
strConnectionString = "ODBC;DRIVER={sql server};" & _
"DATABASE=" & DatabaseName & ";" & _
"SERVER=" & ServerName & ";" & _
"Trusted_Connection=YES;"
qdf.Connect = strConnectionString
qdf.SQL = " EXEC [dbo].[SAMPLE_TEST]"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset
Debug.Print rst!RecordCount
rst.Close
Set rst = Nothing
如果我遗漏了什么,请告诉我?
【问题讨论】:
-
如果将
rst As ADODB.Recordset更改为rst As DAO.Recordset会发生什么? -
@HansUp..同样的错误
-
存储过程是做什么的?它是否返回行?
-
select count(*) as RecordCount from tablename ..只是一个普通的选择查询
-
@HansUp..所有查询都直接运行,但是当保存在 sp 中时,表示 ODBC 调用失败。
标签: sql-server vba ms-access stored-procedures linked-tables