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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
Set p1 = cmd.CreateParameter("@NumSel1", adInteger, adParamInput)
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.