Erreur de conversion Varchar to Integer
Bonjour,
J'ai creee une procedure stockee sur SQLSERVER et j essaye de la lancer avec VBA sur MSACCESS.
La procedure doit retourner la valeur de la cle primaire d'un champ nouvellement insere.
Ca marche tres bien avec MS SQL management studio.
Mais avec CBA, j'obtiens une erreur comme quoi SQLSERVER ne peut transformer un VARCHAR en integer, ce que je ne comprends pas parce qu'il ne devrait pas essayer de le faire.
En tout cas je ne demande pas qu il le fasse.
Ci-dessous la procedure stockee:
Code:
1 2 3 4 5 6 7 8 9
|
Create proc spSetLogonTime
@logID int output,
@UserId varchar(10),
@logtime datetime
as begin
Insert into T_Log (User_Id,Log_on_Date) Values(@UserId ,@logtime)
Select @logID=log_id from T_log where user_id = @userID and log_on_date = @logtime
End |
Ca marche tres bien comme ca et la proecdure retourne la valeur attendue:
Code:
1 2 3 4
|
Declare @myID int
Execute spSetLogonTime @UserId='BZ', @logtime='2:30', @logID = @myID out
print @myID |
Et le code VBA qui ne marche pas ( erreur de conversion Varchar to int)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
Dim adoConn As New ADODB.Connection
Dim adoCommSP As New ADODB.Command
dim activeUser_ID as string
Dim user_Param As ADODB.Parameter
Dim logOnTime_Param As ADODB.Parameter
Dim logID_Param As ADODB.Parameter
adoConn.ConnectionString = "Driver={SQL Server};Server=monServeur; Database=maBase; Trusted_Connection=yes;"
adoConn.Open
adoCommSP.ActiveConnection = adoConn
adoCommSP.CommandType = adCmdStoredProc
adoCommSP.CommandText = "maprocedure"
logTime = Now()
activeUser_ID = "SuperUSER"
Set user_Param = adoCommSP.CreateParameter("@userID", adVarChar, adParamInput, 10, activeUser_ID)
Set logOnTime_Param = adoCommSP.CreateParameter("@logtime", adDBTimeStamp, adParamInput, 10, logTime)
Set logID_Param = adoCommSP.CreateParameter("@logID", adInteger, adParamOutput, 200)
adoCommSP.Parameters.Append user_Param
adoCommSP.Parameters.Append logOnTime_Param
adoCommSP.Parameters.Append logID_Param
adoCommSP.Execute |
Vous avez une idee de pourquoi j'obtiens mon erreur? J'ai beau chercher... Je m arrache les cheveux la... :)
MERCI