Reputation: 682
I have code that works with no errors. My question is more out of wanting to learn the syntax of a With/ End With statement that can include multiple parameters. Right now a new ADODB.Command is set and inside a With/ End With the ActiveConnection, the commandType, and the CommandText are included. Then outside the With 5 parameters are created, appended and assigned.
I was wondering if those parameters can also be inside the With/ End With of the ADODB.Command.
Here is my code:
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
Here is my attempt:
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
Is this the correct way to do it? Any examples are much appreciated.
Thank you.
Code After getting response:
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
Upvotes: 0
Views: 815
Reputation: 175766
I would have thought
ADOQD.Parameters.Append pArrangementID
pArrangementID = Forms("MTDDataCheck").ArrangementID.Value
Would actually fail or replace the in-collection parameter with a string ...
Doesn't matter though as you don't need to explicitly create a parameter, supply the value along whith everything else:
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)
...
End With
Upvotes: 1