Bonjour,
Pour mettre une liste de tables, 3 solutions :
1) choisir "Liste valeur" dans la propriété Origine source. Dans Contenu mettre le nom de chaque table séparée par ;
Exemple : Matable1;Matable2...
2) Créer une table avec une seule colonne puis remplir avec les noms de table. Dans la liste déroulante mettre Table/requête dans Origine source.
3) Créer une fonction VBA pour collecter le nom des tables :
1 2 3 4 5 6 7 8 9 10 11 12
| function collecte() as string
dim db as dao.database
dim maliste as string
dim i as long
for i = 0 to to db.tabledefs.count -1
maliste = iif(len(maliste)>0,";","") db.tabledefs(i).name
next
collecte = maliste
set db = nothing
endif |
Puis sur l'événement Sur ouverture remplir le contenu de la liste comme ceci :
1 2
| me.maliste.RowSourceType = "Table/Query"
me.maliste.RowSource = collecte() |
Voici pour le remplissage de la liste.
Pour l'affichage du contenu, utilise des formulaires pour chaque table. Tu les nommes "sfNomdelatable".
Exemple : Avec la table CLIENT ton formulaire devra se nommer sfCLIENT.
Dans le formulaire (qui contient la liste) rajoute un des sous-formulaire créé.
Fait un clic sur le bord pour atteindre les propriétés de son container. Dans les propriétés tu dois avoir : Nom, Visible, Objet Source avec dans cette dernière propriété le nom du sous formulaire : sfNomdelaTable.
Change la première propriété (Nom) en SfTable.
Pour que cela fonctionne il faut changer le nom du formulaire quand on choisi dans la liste. Utilise l'événement Après Maj de la liste déroulante de choix des tables.
Dans le code tu mets :
Me.SfTable.SourceObjet = "sf" & me.maliste
Voilà ! ça fonctionne.
Cordialement,
Partager