我在MS Access中的代码语法似乎是正确的。
我可以在SQL中手动运行存储过程并获得正确的结果。
当我尝试使用ADO从MS Access调用存储过程时,似乎没有任何事情发生;任何帮助将不胜感激。
Private Sub Combo13_LostFocus()
Dim P1 As Integer
P1 = Forms![Frm_Ws10a]![Frm_WS10b]![Combo13].Column(0)
Dim rs As ADODB.Recordset
Dim CN As ADODB.Connection
Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim adstring As Variant
Set CN = New ADODB.Connection
CN.ConnectionString = "Driver=SQL
Server;Server=LDXFBHD013492 \SQLEXPRESS;Database=xxxx;Trusted_Connection=YES;"
CN.Open
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = CN
.CommandText = "dbo.usp_update_consequenceweighting"
.CommandType = adCmdStoredProc
.Parameters.Refresh
Set prm = .CreateParameter("@ITID", adInteger, adParamInput)
prm.Value = P1
End With
Set rs = cmd.Execute
Me.Recalc
Me.Refresh
提前致谢
答案 0 :(得分:0)
您在下面的代码中缺少.parameters.append
With cmd
.ActiveConnection = CN
.CommandText = "dbo.usp_update_consequenceweighting"
.CommandType = adCmdStoredProc
.Parameters.Refresh
Set prm = .CreateParameter("@ITID", adInteger, adParamInput)
尝试添加parameter.append而不是设置
With cmd
.ActiveConnection = CN
.CommandText = "dbo.usp_update_consequenceweighting"
.CommandType = adCmdStoredProc
.parameter.append .createparameter("@ITID", adInteger, adParamInput, 50, [Value or variable here])
.execute 1
End With