OVH Cloud OVH Cloud

Pb de requete en vba

7 réponses
Avatar
yannick
Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même champ de
Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête dans la
liste des requête je veux la metre aussi en vba, donc dans mon formulaire je
déclare dim Req1 as string en pensant que je ne vais plus utiliser Req1 de la
liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick

7 réponses

Avatar
pgz
Bonsoir,

Dans le premier cas, 'Req1' est un nom de requête.
Dans le deuxième cas Req1 est le SQL d'une requête.
Ce n'est pas la même chose.
Bon courage,
--
pgz
_____________________________




Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même champ de
Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête dans la
liste des requête je veux la metre aussi en vba, donc dans mon formulaire je
déclare dim Req1 as string en pensant que je ne vais plus utiliser Req1 de la
liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick



Avatar
yannick
Bonsoir,
ok effectivement mais comment faire ?

Merci de votre aide

Yannick



Bonsoir,

Dans le premier cas, 'Req1' est un nom de requête.
Dans le deuxième cas Req1 est le SQL d'une requête.
Ce n'est pas la même chose.
Bon courage,
--
pgz
_____________________________




Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même champ de
Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête dans la
liste des requête je veux la metre aussi en vba, donc dans mon formulaire je
déclare dim Req1 as string en pensant que je ne vais plus utiliser Req1 de la
liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick





Avatar
Eric
Bonsoir,

Une contournement:
Créer la requête rq1 le temps du traitement de rq2
Dim qry as Querydef
set qry= currentdb.createquerydef("rq1", "Select ...")
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2
puis supprimer rq1 par Currentdb.Querydefs.Delete "rq1"

Bonsoir,
ok effectivement mais comment faire ?

Merci de votre aide

Yannick




Bonsoir,

Dans le premier cas, 'Req1' est un nom de requête.
Dans le deuxième cas Req1 est le SQL d'une requête.
Ce n'est pas la même chose.
Bon courage,
--
pgz
_____________________________





Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même champ de
Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête dans la
liste des requête je veux la metre aussi en vba, donc dans mon formulaire je
déclare dim Req1 as string en pensant que je ne vais plus utiliser Req1 de la
liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
.../...
Lire évidemment req1 et req2 pour rq1 et rq2.

Attention pour la suppression, il ne faudra pas faire un Requery de la
liste lb si la req1 a été supprimée, tant que le formulaire est ouvert.
Peut-être ne la supprimer que sur le déchargement du formulaire
(libération).

Bonsoir,

Une contournement:
Créer la requête rq1 le temps du traitement de rq2
Dim qry as Querydef
set qry= currentdb.createquerydef("rq1", "Select ...")
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2
puis supprimer rq1 par Currentdb.Querydefs.Delete "rq1"


Bonsoir,
ok effectivement mais comment faire ?

Merci de votre aide

Yannick




Bonsoir,

Dans le premier cas, 'Req1' est un nom de requête.
Dans le deuxième cas Req1 est le SQL d'une requête.
Ce n'est pas la même chose.
Bon courage,
--
pgz
_____________________________





Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même
champ de Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom
',' Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête
dans la liste des requête je veux la metre aussi en vba, donc dans
mon formulaire je déclare dim Req1 as string en pensant que je ne
vais plus utiliser Req1 de la liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom
',' Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
yannick
Bonsoir,
je te remercie eric, toujours la quand il faut, cela fonctionne mais il faut
sans doute un save quelque part car lorque je lance il me met que la base ne
peut pas trouver la table ou la requete rq1. le fait de la supprimer lorqu'il
est sur req2 pourtant cela se fait apres, si je ne la supprime pas le set qry
existe deja donc blocage.


Dim qry as Querydef
set qry= currentdb.createquerydef("rq1", "Select ...")
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2
puis supprimer rq1 par Currentdb.Querydefs.Delete "rq1"

Merci pour ton aide encore une fois deplus

Yannick




..../...
Lire évidemment req1 et req2 pour rq1 et rq2.

Attention pour la suppression, il ne faudra pas faire un Requery de la
liste lb si la req1 a été supprimée, tant que le formulaire est ouvert.
Peut-être ne la supprimer que sur le déchargement du formulaire
(libération).

Bonsoir,

Une contournement:
Créer la requête rq1 le temps du traitement de rq2
Dim qry as Querydef
set qry= currentdb.createquerydef("rq1", "Select ...")
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2
puis supprimer rq1 par Currentdb.Querydefs.Delete "rq1"


Bonsoir,
ok effectivement mais comment faire ?

Merci de votre aide

Yannick




Bonsoir,

Dans le premier cas, 'Req1' est un nom de requête.
Dans le deuxième cas Req1 est le SQL d'une requête.
Ce n'est pas la même chose.
Bon courage,
--
pgz
_____________________________





Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même
champ de Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom
',' Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête
dans la liste des requête je veux la metre aussi en vba, donc dans
mon formulaire je déclare dim Req1 as string en pensant que je ne
vais plus utiliser Req1 de la liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom
',' Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







Avatar
yannick
Bonjour,
je voulais savoir , s'il n' y avait pas un autre moyen que de creer une
requete req1 par vba ou manuelement pour obtenir Lb.RowSource= Req2
PS: je trouve que le traitement est plus long par VBA (normal) quand je
creer rq1 temporairement.

En attente de reponses, bonne journé.

Yannick



Bonsoir,

Une contournement:
Créer la requête rq1 le temps du traitement de rq2
Dim qry as Querydef
set qry= currentdb.createquerydef("rq1", "Select ...")
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2
puis supprimer rq1 par Currentdb.Querydefs.Delete "rq1"

Bonsoir,
ok effectivement mais comment faire ?

Merci de votre aide

Yannick




Bonsoir,

Dans le premier cas, 'Req1' est un nom de requête.
Dans le deuxième cas Req1 est le SQL d'une requête.
Ce n'est pas la même chose.
Bon courage,
--
pgz
_____________________________





Bonsoir,

J’utilise la fonction de Regroupement et concaténation dans un même champ de
Jessy

Si je créer un une requête que je la nomme Req1 dont le contenu est :

Req1 = " SELECT ……………."

Dans un formulaire en vba, j’ai ce code :

Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "

Lb.RowSource= Req2

J’obtiens bien résulat voulu mais je ne veux pas avoir une requête dans la
liste des requête je veux la metre aussi en vba, donc dans mon formulaire je
déclare dim Req1 as string en pensant que je ne vais plus utiliser Req1 de la
liste des requêtes donc je la renomme

Et je met :
Req1 as string
Req1 = " SELECT ……………."
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2


Et là je n’obtiens rien.

La seule différence c’est que j’ai mis Req1 en vba

Quelqu’un voit pourquoi cela cloche ?

Merci

Yannick





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Eric
Bonjour,

et si tu rajoutes un DoEvents avant Req2="SELECT ..."
Ne pas oublier un Set qry = Nothing avant la fin de la procédure comme
moi :-(

Bonsoir,
je te remercie eric, toujours la quand il faut, cela fonctionne mais il faut
sans doute un save quelque part car lorque je lance il me met que la base ne
peut pas trouver la table ou la requete rq1. le fait de la supprimer lorqu'il
est sur req2 pourtant cela se fait apres, si je ne la supprime pas le set qry
existe deja donc blocage.


Dim qry as Querydef
set qry= currentdb.createquerydef("rq1", "Select ...")
Req2 = "SELECT fldNom, ConcatForQuery('fldNom',[ fldNom],' fldPrénom ','
Req1 ',' - ') AS Résultat FROM Req1 GROUP BY fldNom "
Lb.RowSource= Req2
puis supprimer rq1 par Currentdb.Querydefs.Delete "rq1"

Merci pour ton aide encore une fois deplus

Yannick





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr