Bonjour,

je développe une application sous Access, en utilisant ADODB.

J'ai remarqué plusieurs différences de syntaxe entre les requêtes "classiques" et les requêtes écrites pour un recordset ADO...

Voici la requête qui me pose problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
req = "SELECT DISTINCT TREEDOCS.id_doc_bo, TREEDOCS.lib_doc_bo, IIf(IsNull([DEVELOPPEUR]![prenom_dev]),'',Left([DEVELOPPEUR]![prenom_dev],1) & '. ') & [DEVELOPPEUR]![nom_dev] AS expdev, TREEDOCS.date_mise_prod " & _
            "FROM (TREEDOCS LEFT JOIN DEVELOPPEUR ON TREEDOCS.id_dev = DEVELOPPEUR.id_dev) RIGHT JOIN REQUETE ON TREEDOCS.id_doc_bo = REQUETE.id_doc_bo " & _
            "WHERE (((REQUETE.sql_info) Like ('%" & rechdoc & "%')) AND ((REQUETE.id_doc_bo)=[TREEDOCS].[id_doc_bo]) AND ((DEVELOPPEUR.id_dev)=[TREEDOCS].[id_dev])) " & _
            "GROUP BY TREEDOCS.id_doc_bo, TREEDOCS.lib_doc_bo, IIf(IsNull([DEVELOPPEUR]![prenom_dev]),'',Left([DEVELOPPEUR]![prenom_dev],1) & '. ') & [DEVELOPPEUR]![nom_dev] AS expdev, TREEDOCS.date_mise_prod"
 
 
    rsList.Open req, cnx, adOpenStatic, adLockOptimistic
Ce recordset recherche les documents dont le code sql associé contient la chaîne rechdoc.

Dans le recordset, la syntaxe Like ('%" & rechdoc & "%')) fonctionne, tandis que dans une requête Access, je dois employer la syntaxe Like (*" & rechdoc & "*')).

De plus, la requête me ramène un résultat correct dans une requête classique access et un résultat erroné lorsqu'elle est utilisée dans un recordset ADO.

Auriez-vous des indices pour comprendre mon erreur ?

Merci d'avance