Alors voilà j'ai galéré un petit moment sur ce problème donc maintenant que j'ai la solution je vous en fait profiter...
Le problème vient d'un bug en VBa qui veut que tout argument passé en OUTPUT dans une procédure stockée SQL et qui doit retourner une valeur retourne NULL à la place.
Ainsi, il est plutôt difficile de savoir quand l'éxecution de la fameuse procédure stockée est arrivée à son terme ...
Il faut donc contourner le problème comme suit :
procédure initiale sous sql
create procedure sp_plop
@debut varchar(30)
@fin varchar(30) output
as
begin
set @fin='valeur : ' + @debut
end;
procédure intermédiaire
create procedure sp_plop2
@texte varchar(30)
as
begin
declare @fin varchar(30)
execute sp_plop @texte, @fin out
select @fin
end;
Appel de la SP dans Access
Sub get_proc()
Dim rst As New ADODB.Recordset
Dim strSQL As String
Dim param As String
param = "plop"
rst.Open "sp_plop2 " + param, CurrentProject.Connection, adOpenStatic
rst.MoveFirst
strSQL = rst(0)
strSQL = rst.Fields.Item(0)
End Sub
strSQL contient maintenant la valeur retournée par la procédure sp_plop
Message édité par grandpretre le 29-07-2005 à 13:00:15