Page 1 sur 1

[HS] Actualisation formulaire par liste déroulante

Publié : 21 nov. 2018 10:03
par Jazzjoker
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

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

Re: Actualisation formulaire par liste déroulante

Publié : 21 nov. 2018 10:43
par jeanmimi
Bonjour,
Dans le fichier joint, la Macro Actualiser du formulaire CONSULTATIONS est réduite à ce code :

Code : Tout sélectionner

REM  *****  BASIC  *****
Sub Actualiser(oEv as Object)
   oEv.Source.Model.Refresh
End Sub
ce qui est un peu court.

Re: Actualisation formulaire par liste déroulante

Publié : 21 nov. 2018 10:54
par Bidouille
Jazzjoker a écrit :mes faibles connaissances en macro
Image