Utilisation des procedures stockées en VBA
Bonjour à tous.
Je début une application Access connecté à une BD SQLServer. Je suis donc en fase de test des procédures stockés. J'ai trouvé et adapté un bout de code qui me permet de récupérer le résultat d'une Procedure Stocké mais j'ai pas tout compris. Voici mon appel de procedure
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Public Sub ExempleAppelPS()
'on apppel une procédure stoké en lui chargeant un paramêtre et on affect le résultat à un RS
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim p1 As ADODB.Parameter
Set cmd = New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "PS_NomIngre_PoidNor_CommentaireNor"
Set p1 = cmd.CreateParameter("@NumSel", adInteger, adParamInput)
cmd.Parameters.Append p1
p1.Value = 1
Set rs = cmd.Execute
MsgBox rs.RecordCount
End Sub |
Voici ma procedure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| CREATE PROCEDURE [dbo].[PS_NomIngre_PoidNor_CommentaireNor]
-- Add the parameters for the stored procedure here
@NumSel int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT i.NomIngre, n.PoidNor, n.CommentaireNor
FROM TL_FormSel_Ingre_NORMAUX n JOIN Ingredients i ON i.PK_NumIngre = n.FK_NumIngre
WHERE n.FK_NumFormSel = @NumSel ;
END |
VOICI MES QUESTIONS :
1-La fonction Parmeter.Append ... que fait elle éxactement?
2-Si à l'appel de la procedure, quand je défini le paramêtre, je met
Code:
Set p1 = cmd.CreateParameter("@NumSel1", adInteger, adParamInput)
au lieu de
Code:
Set p1 = cmd.CreateParameter("@NumSel", adInteger, adParamInput)
ça fonctionne...pourquoi? (dans ma procedure le paramêtre s'appel @NumSel)
3-Existe-t'il un moyen d'appeler la procedure sans faire
Code:
1 2 3 4
| Set p1 = cmd.CreateParameter("@NumSel", adInteger, adParamInput)
cmd.Parameters.Append p1
p1.Value = 1 |
Merci d'avance à tous pour vos réponses.