[Résolu][Base] Changer une requête SQL via liste deroulante

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
ouflala
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 10 mars 2013 08:06

[Résolu][Base] Changer une requête SQL via liste deroulante

Message par ouflala »

Bonjour,

J'ai une liste deroulante dans laquelle il y a des noms de fruit.
J'ai un sous formulaire avec un tableau qui donne des infos en fonction des fruits choisi dans la liste deroulante.
J'ai un bouton "rafraichir" qui doit rafraichir le tableau en fonction des fruits choisis;

J'ai fait une requete dans mon sous formulaire et ecrit une petit bout de macro (tres tres inspiré d'une reponse de Pys ...et un grand merci au passage.... :bravo: :mrgreen: ) qui doit mettre a jour le code SQL de la requete en fonction du fruit dans la liste deroulante.

J'ai fait plusieurs fois cette manip pour MAJ des listes en cascade. Mais la, vu que c'est pour mettre à jour une requete d'un sous formulaire il doit y avoir une subtilité qui fait que qd je clique sur le bouton rafraichir ca plante!!!! :fou:

Mais vu qu'un exemple vaut mieux qu'un long discours, je vous joins ma base.

D'avance merci à ceux qui vont se pencher sur mon pb (et aux autres aussi! :lol: )
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 30 juil. 2015 08:44, modifié 3 fois.
Raison : Ajout [Résolu]. La coche seule ne suffit pas
Libre Office 4.3.5.2. + Win 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9248
Inscription : 28 août 2010 08:45

Re: [Base]Changer code sql d'une requete en fct liste deroul

Message par micmac »

Bonjour,
votre signature a écrit : OOo 3.3 + Win 7
Votre signature indique que vous disposez d'une version obsolète de OpenOffice.
http://oooforum.free.fr/index.php/2013/ ... ice-3-3-0/
Est-ce un choix, une erreur, un oubli, une obligation ?
Dans ce dernier cas, mentionnez-le dans votre signature par "Obligation de version".

Pour connaître la version que vous possédez : https://forum.openoffice.org/fr/forum/v ... 582#p11582

Pour vous mettre à jour de la dernière version : https://forum.openoffice.org/fr/forum/v ... m.php?f=38.

Votre signature doit comporter :
1- La version exacte de AOO ou LibO (AOO 4.1.1, LibO 4.3.7 par exemple) ;
2- La version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Ubuntu 12.04, MacIntel 10.10.3, par exemple).

Accès direct à votre signature pour la corriger.

Cordialement.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16959
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base]Changer code sql d'une requete en fct liste deroul

Message par jeanmimi »

Bonjour,
Normalement, il n'y a pas besoin de Macro pour afficher un résultat dans un sous-formulaire à partir d'une sélection dans une Zone de liste.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base]Changer code sql d'une requete en fct liste deroul

Message par Piaf »

Bonsoir
Naturellement + 1 pour jeanmimi.
Un peu d'explications, une fois n'est pas coutume :lol:
Tu mets en place une relation plusieurs à plusieurs correcte.
Un producteur peut produire plusieurs produits et un produit peut être produit par plusieurs producteurs. Le champ id_produit dans la table exploitant n'a donc aucune raison d'être.
Le principe de sélection d'enregistrements (sans macro) à partir d'une liste déroulante est expliqué dans le premier message du tutoriel de Pierre-Yves Samyn [Base] Sélection d'enregistrement avec une liste déroulante
En appliquant ce principe, tu peux afficher, ajouter, supprimer ou modifier les enregistrements liés de la table fiche. (Formulaire fSelectProduit).
Dans ton formulaire produit, tu ne tiens pas compte des relations de la base d'où la nécessité de la macro pour récupérer l'identifiant du produit. (Formulaire fSelectProduit2)
Si tu tiens absolument à baser ton sous-formulaire sur une instruction SQL, tiens compte des relations misent en place et dans ce cas, la macro n'est plus nécessaire. (fSelectProduit3).
Et enfin, si tu veux pouvoir modifier les enregistrements liés, construis une instruction SQL qui le permette. (fSelectProduit4).
HS : Tu devrais ajouter un index unique sur les champs id_exploitant et id_produit de la table fiche.
Index.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
ouflala
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 10 mars 2013 08:06

Re: [Base] Changer une requête SQL via liste deroulante

Message par ouflala »

Avec un peu de retard, j'avais oublié de mettre résolu....Merci pour votre aide, c'est tout bon! :super:
Libre Office 4.3.5.2. + Win 7