Bonjour,
Je vous expose la situation, je dispose de 3 tables:
· 131_Variete_Casier_Cycle (champ: Id_Casier, Id_Cycle (c'est une table de jointure))
· 133_Cycle (champs: Id_Cycle (clef primaire format texte)
· 13_Casier (champs: Id_Parc (numérique entier long)
donc j'ai fait un formulaire avec 2 zones de liste (lstCycle et lstParc) qui me permettent de choisir d'abord le Cycle puis les parcelles (j'effectue un filtre, je ne sélectionne que les parcelles présentent sur le cycle sélectionné dans la 1ère zone de liste, là tout fonctionne)
J'utilise ensuite cette sélection pour afficher un état basé uniquement sur la sélection du cycle et de la parcelle.
Il se trouve que je voudrais avoir la possibilité de vois sur l'état toutes les parcelles du cycle sélectionné donc j'ai essayé d'ajouter "Tous" en haut de ma liste (utilisation du code de la FAQ).
Pour la lstCyle,
J'insère le code suivant:
Et dès que je vais voir s'il fonctionne, le SQL change je ne sais trop comment et me donne celui-ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT [133_Cycle].[Id_Cycle] FROM (Select [133_Cycle].[Id_Cycle],1 As Position From 133_Cycle Union Select TOP 1 "-Tous-",0 From 133_Cycle) GROUP BY [133_Cycle].[Id_Cycle] ORDER BY [133_Cycle].[Id_Cycle] DESC;
Erreur: mise en crochet non valide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT [133_Cycle].[Id_Cycle] FROM [Select [133_Cycle]].[[Id_Cycle],1 As Position From 133_Cycle Union Select TOP 1 "-Tous-",0 From 133_Cycle] AS [%$##@_Alias] GROUP BY [133_Cycle].[Id_Cycle] ORDER BY [133_Cycle].[Id_Cycle] DESC;
J'ai beau le changer, rien à faire, le code ci-dessus revient toujours
Ensuite, je veux faire pareil sur ma lstParc, j'utilise le code suivant (inséré sur Contenu de ma liste):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT [13_Casier].[Id_Parc], [131_Variete_Casier_Cycle].[Id_Cycle] FROM (Select [13_Casier].[Id_Parc] ,1 As Position From 13_Casier Union Select TOP 1 "-Tous-",0 From 13_Casier) INNER JOIN 131_Variete_Casier_Cycle ON [13_Casier].[Id_Casier]=[131_Variete_Casier_Cycle].[Id_Casier] GROUP BY [13_Casier].[Id_Parc], [131_Variete_Casier_Cycle].[Id_Cycle] HAVING ((([131_Variete_Casier_Cycle].Id_Cycle)=[forms]![Z_essai_liste de sélection]![lstCycle]));
Là j'ai un message d'erreur : Erreur de Syntaxe dans l'opération Join
Donc je ne vois pas comment résoudre cela, est ce que c'est parce que j'ai un déjà un filtre sur ma zone de liste ?
Avant de modifier mon SQL, j'utilisai celui-ci (tout fonctionnait très bien)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT [13_Casier].[Id_Parc], [131_Variete_Casier_Cycle].[Id_Cycle] FROM 13_Casier INNER JOIN 131_Variete_Casier_Cycle ON [13_Casier].[Id_Casier]=[131_Variete_Casier_Cycle].[Id_Casier] GROUP BY [13_Casier].[Id_Parc], [131_Variete_Casier_Cycle].[Id_Cycle] HAVING ((([131_Variete_Casier_Cycle].Id_Cycle)=[forms]![Z_essai_liste de sélection]![lstCycle]));
Voilà, donc si quelqu'un pouvait me donner quelques indices ou pouvait me proposer une autre solution pour insérer le "Tous" en haut d'une zone de liste….je ne dis pas non
Pauline
Partager