OVH Cloud OVH Cloud

Excel et requete SQL

1 réponse
Avatar
José
Bonjour,

Lorsque j'exécute ce code, la requête SQL renvoie le message d'erreur "Type
de données incompatibles dans l'expression du critère"
En fait lorsque je remplace la variable ADR par 46530, la requête fonctionne
parfaitement et renvoie bien le Nom qui se trouve dans la table TClients

str = str & "WHERE ((([TBacs].[num_fichebac])=46530))"

Quelqu'un pourrait-il me donner une solution ?

For i = 1 To NBLIGNES - 1

ADR = Cells(ActiveCell.Row, 8)
str = "SELECT [TBacs].[num_fichebac], [TBacs].[id_client],
[TClients].[id_client], [TClients].[nom] "
str = str & "FROM TClients INNER JOIN TBacs ON
[TClients].[id_client]=[TBacs].[id_client] "
str = str & "WHERE ((([TBacs].[num_fichebac])='" & ADR & "'))"

Set adorecordset = New ADODB.Recordset
adorecordset.Open str, adoConnection, adOpenKeyset, adLockOptimistic,
adCmdText
ActiveCell = adorecordset!Nom
ActiveCell.Offset(1, 0).Select
Next i

Merci

1 réponse

Avatar
Denis Michon
Bonjour José,

Essaie ceci :

Dim Adr as long 'ou as String cela dépend du type de champ que tu as défini dans ta table

Adr = 46530
str = str & "WHERE [TBacs].[num_fichebac])= " & Adr


Salutations!


"José" a écrit dans le message de news:3fc73e75$0$18433$
Bonjour,

Lorsque j'exécute ce code, la requête SQL renvoie le message d'erreur "Type
de données incompatibles dans l'expression du critère"
En fait lorsque je remplace la variable ADR par 46530, la requête fonctionne
parfaitement et renvoie bien le Nom qui se trouve dans la table TClients

str = str & "WHERE ((([TBacs].[num_fichebac])F530))"

Quelqu'un pourrait-il me donner une solution ?

For i = 1 To NBLIGNES - 1

ADR = Cells(ActiveCell.Row, 8)
str = "SELECT [TBacs].[num_fichebac], [TBacs].[id_client],
[TClients].[id_client], [TClients].[nom] "
str = str & "FROM TClients INNER JOIN TBacs ON
[TClients].[id_client]=[TBacs].[id_client] "
str = str & "WHERE ((([TBacs].[num_fichebac])='" & ADR & "'))"

Set adorecordset = New ADODB.Recordset
adorecordset.Open str, adoConnection, adOpenKeyset, adLockOptimistic,
adCmdText
ActiveCell = adorecordset!Nom
ActiveCell.Offset(1, 0).Select
Next i

Merci