How to call SQL Server Stored Procedure from within MS Access VBA

倾然丶 夕夏残阳落幕 提交于 2019-12-13 17:15:23

问题


I have a Stored Procedure that takes parameters, but does not return anything. How do I call it from within MS Access?

EDIT - With Remou's assistance, I've got it working:

Set cnn = New adodb.Connection
cnn.ConnectionString = 
   "driver=SQL Server;server=SERVER\SERVER;database=a_db;Trusted_Connection=Yes"

cnn.Open cnn.ConnectionString

Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"

Set param = cmd.CreateParameter
                ("DataSetID", adInteger, adParamInput, 6, stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
                ("Destination", adChar, adParamInput, 2, stDestination)
cmd.Parameters.Append param

rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd

回答1:


Here is an outline that may help. I may be able to get back with more detail later. It is not specific to your case, but it may keep you going :)

Public dbconn As ADODb.Connection
Dim cmd As New ADODb.command
Dim rs As New ADODb.Recordset
Dim param As New ADODb.Parameter

Set dbconn = New ADODb.Connection
dbconn.ConnectionString = GetServerCon

dbconn.Open dbconn.ConnectionString

Set cmd = New ADODb.command
cmd.ActiveConnection = dbconn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "insert_user"

Set param = cmd.CreateParameter(_
   "username", adVarChar, adParamInput, 50, Environ("UserDomain") & "dddddddd\" _
   & Environ("Username"))
cmd.Parameters.Append param

rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd


来源:https://stackoverflow.com/questions/12404805/how-to-call-sql-server-stored-procedure-from-within-ms-access-vba

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!