Problème Filtrer sous-formulaire et instruction SQL

Le
BV
Bonjour à tous
J'ai un formulaire principal avec 2 sous-formulaires
L'idée c'est que lorsque je double-clique sur une occurrence du SF1
il me filtre le SF2 en récupérant la variable. Ca marche !
Sauf que je voudrais dans mon instruction SQL rajouter GROUP BY
et c'est là que ça plante.

Code qui marche :
Forms![F_DETAIL SALARIE]![SF_DetailAct].Form.RecordSource = "SELECT ID_SA=
LARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE METIER=[Formulaires]![=
F_Detail salarie]![SF_DetailMetier].[Form]![Metier]"

Code qui ne marche pas :
Forms![F_DETAIL SALARIE]![SF_DetailAct].Form.RecordSource = "SELECT ID_SA=
LARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE METIER=[Formulaires]![=
F_Detail salarie]![SF_DetailMetier].[Form]![Metier] GROUP BY Metier"

message d'erreur :"erreur de syntaxe(opérateur absent)dans l'expression .=
..
Merci beaucoup pour vos indications et votre aide précieuse

BV
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
db
Le #25387582
Le 06/05/2013 17:58, BV a écrit :
Bonjour à tous
J'ai un formulaire principal avec 2 sous-formulaires
L'idée c'est que lorsque je double-clique sur une occurrence du SF1
il me filtre le SF2 en récupérant la variable. Ca marche !
Sauf que je voudrais dans mon instruction SQL rajouter GROUP BY
et c'est là que ça plante.

Code qui marche :
Forms![F_DETAIL SALARIE]![SF_DetailAct].Form.RecordSource = "SELECT ID_SALARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE METIER=[Formulaires]![F_Detail salarie]![SF_DetailMetier].[Form]![Metier]"

Code qui ne marche pas :
Forms![F_DETAIL SALARIE]![SF_DetailAct].Form.RecordSource = "SELECT ID_SALARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE METIER=[Formulaires]![F_Detail salarie]![SF_DetailMetier].[Form]![Metier] GROUP BY Metier"

message d'erreur :"erreur de syntaxe(opérateur absent)dans l'expression ....



Bonsoir,

L'instruction GROUP BY ne se justifie que s'il y a une fonction
d'agrégation (sum, count, avg, min, max) dans le SELECT, ce qui n'est
pas le cas dans votre SQL.

Peut-être est-ce ORDER BY METIER que vous souhaitez mettre ?

Ou alors, précisez-nous ce que vous souhaitez obtenir.

db
BV
Le #25388702
Le lundi 6 mai 2013 18:12:32 UTC+2, db a écrit :
Le 06/05/2013 17:58, BV a �crit :

> Bonjour � tous

> J'ai un formulaire principal avec 2 sous-formulaires

> L'id�e c'est que lorsque je double-clique sur une occurrence du SF1

> il me filtre le SF2 en r�cup�rant la variable. Ca march e !

> Sauf que je voudrais dans mon instruction SQL rajouter GROUP BY

> et c'est l� que �a plante.

>

> Code qui marche :

> Forms![F_DETAIL SALARIE]![SF_DetailAct].Form.RecordSource = "SELECT I D_SALARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE METIER=[Formulaire s]![F_Detail salarie]![SF_DetailMetier].[Form]![Metier]"

>

> Code qui ne marche pas :

> Forms![F_DETAIL SALARIE]![SF_DetailAct].Form.RecordSource = "SELECT I D_SALARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE METIER=[Formulaire s]![F_Detail salarie]![SF_DetailMetier].[Form]![Metier] GROUP BY Metier"

>

> message d'erreur :"erreur de syntaxe(op�rateur absent)dans l'ex pression ....



Bonsoir,



L'instruction GROUP BY ne se justifie que s'il y a une fonction

d'agr�gation (sum, count, avg, min, max) dans le SELECT, ce qui n 'est

pas le cas dans votre SQL.



Peut-�tre est-ce ORDER BY METIER que vous souhaitez mettre ?



Ou alors, pr�cisez-nous ce que vous souhaitez obtenir.



db



je souhaiterai en fait juste regrouper sur un niveau sans faire de calcul
le requêteur d'access me permet de le faire
peut être qu'en faisant un count sur un champ sans le faire apparaître celà pourrait marcher
merci beaucoup pour cette indication
db
Le #25388752
Le 07/05/2013 09:07, BV a écrit :


je souhaiterai en fait juste regrouper sur un niveau sans faire de calcul
le requêteur d'access me permet de le faire
peut être qu'en faisant un count sur un champ sans le faire apparaître celà pourrait marcher
merci beaucoup pour cette indication



Si vous tenez à mettre GROUP BY, il est obligatoire de mettre tous les
champs qui sont dans la clause SELECT (hormis les calculs) :

SELECT ID_SALARIE, METIER, NOM_ACTIVITE FROM R_DETAILSAL WHERE
METIER=[Formulaires]![F_Detail
salarie]![SF_DetailMetier].[Form]![Metier] GROUP BY ID_SALARIE, METIER,
NOM_ACTIVITE

…mais, encore une fois, le group by ne se justifie que s'il y a un
calcul à faire sur le regroupement. Dans votre cas, il n'apportera rien
à la requête.

db
Publicité
Poster une réponse
Anonyme