[HS] Actualisation formulaire par liste déroulante

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.

[HS] Actualisation formulaire par liste déroulante

Messagepar Jazzjoker » 21 Nov 2018 11:03

Bonjour,

Mon problème c'est d'actualiser un sous formulaire à partir d'un choix fait dans une liste déroulante – topos maintes fois traité au sein de ce forum et dont j'ai essayé de m'inspirer et plus concrètement de ce fil de discussion :

https://forum.openoffice.org/fr/forum/v ... 662#p81393

de Pierre-Yves Samyn dont j'ai déjà repris "l'architecture" du formulaire par le biais d'un "truc", à savoir une table dont le seul but est de récolter le choix fait dans la liste ; cela fonctionne très bien avec un bouton situé dans le sous-formulaire qui actualise ce dernier après avoir effectué le choix dans la liste (située dans le formulaire principal) ;

mais, par un souci de rapidité (et "d'élégance"), j'aimerais que ledit sous-formulaire s'actualise automatiquement, une fois le choix dans la liste fait ; malheureusement, mes faibles connaissances en macro ne me permettent pas d'adapter le code proposé par Mr Samyn (ou une autre alternative) qui est le suivant :

Code : Tout sélectionner   AgrandirRéduire
Sub PysActualiser(PysEvt as object)
dim PysList as object, PysForm as object
dim PysSQL as string, PysChoix as string

PysList = PysEvt.source               'La liste déroulante

PysChoix = PysList.SelectedItem         'Choix fait dans la liste
PysForm = PysList.model.Parent         'On "remonte" au parent (le formulaire)

'SELECT T_FILM.*, T_GENRE.* FROM T_FILM, T_GENRE WHERE T_FILM.id_genre = T_GENRE.id_genre AND T_GENRE.genre = 'comique'
'Concaténation avec le choix fait dans la liste
PysSQL = "SELECT T_FILM.*, T_GENRE.* FROM T_FILM, T_GENRE WHERE T_FILM.id_genre = T_GENRE.id_genre AND T_GENRE.genre ='" + PysChoix + "'"
[/i]PysForm.command = PysSQL            'Redéfinition de la source du formulaire
PysForm.reload                     'Recharge le formulaire

End Sub


En ce qui concerne ma base, la liste déroulante en question est dans le "MainForm" du formulaire "Consultations" et elle est alimentée par les champs "idPatient", "Nom" et "Prenom" de la table "Patients" ; c'est ce premier champ qu'elle récupère dans la table "selectPatient" (le fameux truc) dans le champ "Selection" ; ce dernier fait le lien avec le champ "NoPatient" dans la table "Consultations" et le sous-formulaire dont l'actualisation par macro m'intéresse.

Vous remerciant d'avance –
bien cordialement
Pièces jointes
Choix par liste.odb
(261.17 Kio) Téléchargé 16 fois
Dernière édition par micmac le 21 Nov 2018 11:22, édité 1 fois.
Apache OpenOffice 4.1.5
Windows XP, 10
Jazzjoker
Membre lOOyal
Membre lOOyal
 
Message(s) : 34
Inscrit le : 22 Jan 2015 10:48

Re: Actualisation formulaire par liste déroulante

Messagepar jeanmimi » 21 Nov 2018 11:43

Bonjour,
Dans le fichier joint, la Macro Actualiser du formulaire CONSULTATIONS est réduite à ce code :
Code : Tout sélectionner   AgrandirRéduire
REM  *****  BASIC  *****
Sub Actualiser(oEv as Object)
   oEv.Source.Model.Refresh
End Sub

ce qui est un peu court.
LibreOffice Version : 6.2.1.2 (x64) (8 mars 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 14832
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: Actualisation formulaire par liste déroulante

Messagepar Bidouille » 21 Nov 2018 11:54

Jazzjoker a écrit:mes faibles connaissances en macro

Image
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 9951
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)