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:
Ca marche tres bien comme ca et la proecdure retourne la valeur attendue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Et le code VBA qui ne marche pas ( erreur de conversion Varchar to int)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Declare @myID int Execute spSetLogonTime @UserId='BZ', @logtime='2:30', @logID = @myID out print @myID
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
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
Partager