2

我有一个存储过程需要参数,但不返回任何内容。我如何从MS Access中调用它?如何从MS Access VBA中调用SQL Server存储过程

编辑 - 随着Remou的帮助下,我找到了工作:

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 
+0

你可以对一个连接上运行,也可以使用直通http://support.microsoft.com/kb/303968 – Fionnuala

+0

GRRR,这不起作用,有什么想法? – aSystemOverload

+0

它告诉我'不能执行选择查询',它使我感到困惑,因为它不是一个选择查询 – aSystemOverload

回答

4

这里有一个大纲,可以帮助。稍后我可能会回到更多细节。它不是具体到你的情况,但它可能让你去:)

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 
+0

感谢Remou,我会检查它并让你知道;) – aSystemOverload

相关问题