0
我有无错误地工作的代码。我的问题更多的是想学习可以包含多个参数的With/End With语句的语法。现在,一个新的ADODB.Command被设置并且在With/End中包含了ActiveConnection,commandType和CommandText。然后在With With参数之外创建,附加和分配。VBA:使用/ end语句创建多个参数
我想知道如果这些参数也可以在With/End With ADODB.Command中。
这里是我的代码:
Set ADOQD = New ADODB.Command
With ADOQD
.ActiveConnection = ADOCon
.CommandType = adCmdStoredProc
.CommandText = "jsp_AddFeedback"
End With
Set pArrangementID = CreateParameter("@ArrangementID", adVarChar, adParamInput, 15)
ADOQD.Parameters.Append pArrangementID
pArrangementID = Forms("MTDDataCheck").ArrangementID.Value
Set pEditor = ADOQD.CreateParameter("@Editor", adVarWChar, adParamInput, 20)
ADOQD.Parameters.Append pEditor
pEditor = gstrLastEditor
Set pProofer = ADOQD.CreateParameter("@Proofer", adVarWChar, adParamInput, 20)
ADOQD.Parameters.Append pProofer
pProofer = gstrLastProofer
Set pControlName = ADOQD.CreateParameter("@ControlName", adVarWChar, adParamInput, 255)
ADOQD.Parameters.Append pControlName
pControlName = lbl.name
Set pComment = ADOQD.CreateParameter("@Comment", adLongVarWChar, adParamInput, -1)
ADOQD.Parameters.Append pComment
pComment = reply
这里是我的尝试:
Set ADOQD = New ADODB.Command
With ADOQD
.ActiveConnection = ADOCon
.CommandType = adCmdStoredProc
.CommandText = "jsp_DeleteFeedback"
Set pArrangementID = .CreateParameter("@ArrangementID", adVarChar, adParamInput, 15)
.Parameters.Append pArrangementID
pArrangementID = Forms("MTDDataCheck").ArrangementID.Value
Set pControlName = .CreateParameter("@ControlName", adVarWChar, adParamInput, 255)
.Parameters.Append pControlName
pControlName = lbl.name
.Execute
End With
这是做了正确的方法是什么?任何例子都非常感谢。
谢谢。
代码得到响应后:
Set ADOQD = New ADODB.Command
With ADOQD
Set .ActiveConnection = ADOCon
.CommandType = adCmdStoredProc
.CommandText = "jsp_AddFeedback"
.Parameters.Append .CreateParameter("@ArrangementID", adVarChar, adParamInput, 15, Forms("MTDDataCheck").ArrangementID.Value)
.Parameters.Append .CreateParameter("@Editor", adVarWChar, adParamInput, 20, gstrLastEditor)
.Parameters.Append .CreateParameter("@Proofer", adVarWChar, adParamInput, 20, gstrLastProofer)
.Parameters.Append .CreateParameter("@ControlName", adVarWChar, adParamInput, 255, lbl.name)
.Parameters.Append .CreateParameter("@Comment", adLongVarWChar, adParamInput, -1, reply)
.Execute
End With
在你的例子中,你正在混合哪些值,我想,这使得我有点困惑,理解。你是否至少告诉我如何正确地做一个参数?在我的代码中,每个变量/参数有3行。 Set = CreateParameter,追加变量,然后赋值给变量。 –
Typo。第一个'.Parameters.Append'创建并附加一个名为'@ ArrangementID'的参数,并为其提供任何Forms(“MTDDataCheck”)ArrangementID.Value'的值。它可以在1行上完成,而不需要参数变量。 –
谢谢Alex K.你会介意检查我的代码的最新版本:“代码得到回应后:”并让我知道它看起来是否正确?再次感谢你。 –