问题
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