我正在使用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] 删除。
我来说两句