OVH Cloud OVH Cloud

Problème de requête

2 réponses
Avatar
N
Bonjour,

Je créé plusieurs requêtes sous VB (en connexion ADO). Je m'en sert pour
connaître le nombre de fiches trouvées. 4 tables composent ces requêtes.

La base de la requête est
Rqrecherche = "SELECT Renseignement.Id FROM ((Renseignement LEFT JOIN Table1
ON renseignement.id=Table1.Idre) LEFT JOIN Table2 ON
renseignement.id=Table2.Idr) LEFT JOIN Table3 ON
renseignement.id=Table3.IdRens "

le code recherche les critères sélectionnés (20 possibles) puis les mets en
forme SQL


La 1er cherche toute les fiches corespondantes aux critères :

GrouperPar = "GROUP BY Renseignement.Id, Renseignement.LN,
Renseignement.Critere1"
HClause = "HAVING (((renseignement.LN) = False) AND
((Renseignement.Critere1) = 12));

RqRecherche = RqRecherche & GrouperPar & HClause & ");"
Avec un recorcount je récupère le nombre trouvé.

La troisième est sensé m'indiqué parmi ces fiches lesquelles n'ont pas de
mails :

WClauseSm = HClause & " AND ((Renseignement.AdresseMail) NOT LIKE '*@*')"
GrouperPar = GrouperPar & ",Renseignement.AdresseMail"
'
RqSMail = rqRecherche & GrouperPar & WClauseSm & ");"

La deuxième est sensée m'indiquer parmi ces fiches lesquelles ont des mails
:

WClauseAm = HClause & " AND ((Renseignement.AdresseMail) LIKE '*@*')"
'
RqSMail = rqRecherche & GrouperPar & WClauseAm & ");"


Le souci se trouvant dans les deux dernières requêtes.
La 2ème me retourne quoiqu'il en soit 0
La 3ème me retourne systèmatiquement le même nombre que la première.

J'ai testé la syntaxe en collant ces lignes SQL de chacune des deux requêtes
et ... elles fonctionnent très bien sous Access.

Pourquoi cela ne fonctionne pas à partir de VB ?

Christian

2 réponses

Avatar
Clive Lumb
"N" a écrit dans le message de
news:43de99e3$0$22438$
Bonjour,

Je créé plusieurs requêtes sous VB (en connexion ADO). Je m'en sert pour
connaître le nombre de fiches trouvées. 4 tables composent ces requêtes.

La base de la requête est
Rqrecherche = "SELECT Renseignement.Id FROM ((Renseignement LEFT JOIN


Table1
ON renseignement.id=Table1.Idre) LEFT JOIN Table2 ON
renseignement.id=Table2.Idr) LEFT JOIN Table3 ON
renseignement.id=Table3.IdRens "

le code recherche les critères sélectionnés (20 possibles) puis les mets


en
forme SQL


La 1er cherche toute les fiches corespondantes aux critères :

GrouperPar = "GROUP BY Renseignement.Id, Renseignement.LN,
Renseignement.Critere1"
HClause = "HAVING (((renseignement.LN) = False) AND
((Renseignement.Critere1) = 12));

RqRecherche = RqRecherche & GrouperPar & HClause & ");"
Avec un recorcount je récupère le nombre trouvé.

La troisième est sensé m'indiqué parmi ces fiches lesquelles n'ont pas de
mails :

WClauseSm = HClause & " AND ((Renseignement.AdresseMail) NOT LIKE '*@*')"
GrouperPar = GrouperPar & ",Renseignement.AdresseMail"
'
RqSMail = rqRecherche & GrouperPar & WClauseSm & ");"

La deuxième est sensée m'indiquer parmi ces fiches lesquelles ont des


mails
:

WClauseAm = HClause & " AND ((Renseignement.AdresseMail) LIKE '*@*')"
'
RqSMail = rqRecherche & GrouperPar & WClauseAm & ");"


Le souci se trouvant dans les deux dernières requêtes.
La 2ème me retourne quoiqu'il en soit 0
La 3ème me retourne systèmatiquement le même nombre que la première.

J'ai testé la syntaxe en collant ces lignes SQL de chacune des deux


requêtes
et ... elles fonctionnent très bien sous Access.

Pourquoi cela ne fonctionne pas à partir de VB ?

Christian



Essayer avec des % à la place des *
Avatar
Josselin JOUANNET
Peut tu afficher ta requette avant execution
--
Cordialement
Joss


"N" a écrit :

Bonjour,

Je créé plusieurs requêtes sous VB (en connexion ADO). Je m'en sert pour
connaître le nombre de fiches trouvées. 4 tables composent ces requêtes.

La base de la requête est
Rqrecherche = "SELECT Renseignement.Id FROM ((Renseignement LEFT JOIN Table1
ON renseignement.id=Table1.Idre) LEFT JOIN Table2 ON
renseignement.id=Table2.Idr) LEFT JOIN Table3 ON
renseignement.id=Table3.IdRens "

le code recherche les critères sélectionnés (20 possibles) puis les mets en
forme SQL


La 1er cherche toute les fiches corespondantes aux critères :

GrouperPar = "GROUP BY Renseignement.Id, Renseignement.LN,
Renseignement.Critere1"
HClause = "HAVING (((renseignement.LN) = False) AND
((Renseignement.Critere1) = 12));

RqRecherche = RqRecherche & GrouperPar & HClause & ");"
Avec un recorcount je récupère le nombre trouvé.

La troisième est sensé m'indiqué parmi ces fiches lesquelles n'ont pas de
mails :

WClauseSm = HClause & " AND ((Renseignement.AdresseMail) NOT LIKE '*@*')"
GrouperPar = GrouperPar & ",Renseignement.AdresseMail"
'
RqSMail = rqRecherche & GrouperPar & WClauseSm & ");"

La deuxième est sensée m'indiquer parmi ces fiches lesquelles ont des mails
:

WClauseAm = HClause & " AND ((Renseignement.AdresseMail) LIKE '*@*')"
'
RqSMail = rqRecherche & GrouperPar & WClauseAm & ");"


Le souci se trouvant dans les deux dernières requêtes.
La 2ème me retourne quoiqu'il en soit 0
La 3ème me retourne systèmatiquement le même nombre que la première.

J'ai testé la syntaxe en collant ces lignes SQL de chacune des deux requêtes
et ... elles fonctionnent très bien sous Access.

Pourquoi cela ne fonctionne pas à partir de VB ?

Christian