Bonjour,
J'ai une base de données avec plusieurs tables qui sont créées dynamiquement.
J'aimerais afficher une combo box avec la liste de mes tables. Mais je ne sais pas où trouver une telle liste, ni même comment la créer.
Merci de vos aides
Bonjour,
J'ai une base de données avec plusieurs tables qui sont créées dynamiquement.
J'aimerais afficher une combo box avec la liste de mes tables. Mais je ne sais pas où trouver une telle liste, ni même comment la créer.
Merci de vos aides
Bonjour,
une piste de ce côté
http://access.developpez.com/sources...terTablesChamp
Cordialement
Mouai... ça m'aide pas beaucoup...
Mais merci du lien quand même.
Le code fonctionne, enfin il ne me donne pas d'erreur, mais je ne sais pas où est créée la liste, comment la voir, la faire apparaître.
Bonsoir,
Admettons que la zone de liste modifiable s'appelle cboTables et que sa propriété «Origine source» est sur «Liste valeurs».
Dans le module de code du formulaire tu colles cette sub :
Tu peux ensuite appeler cette quand bon te semble.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Sub ActualiserListeTables() Dim db As DAO.Database Dim td As DAO.TableDef Dim lgAttrRej As Long Dim sListe As String ' Attributs de table non désirés lgAttrRej = dbSystemObject Or dbHiddenObject Set db = CurrentDb For Each td In db.TableDefs If (td.Attributes And lgAttrRej) = 0 Then sListe = sListe & td.Name & ";" End If Next If Len(sListe) > 0 Then sListe = Left(sListe, Len(sListe) - 1) ' Met à jour la liste de valeurs de la zone de liste modifiable Me.cboTables.RowSource = sListe End Sub
Par exemple au chargement du formulaire :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Form_Load() ActualiserListeTables End Sub
Bonjour,
Ca fonctionne presque!
J'ai cette erreur là :
"The record 'Test;Export;Table1;Table2' specified on this form does not exist. The name of the recorsource may be misspelled, the recordsource was deleted or renamed, or the recordsource exist in a different database. In the form or report's design view of layout view, display the property sheet by clicking the properties button, and then set the recordsource property to an existing table or query"
Bonjour,
Je pense que ça vient de la propriété «Origine source» de la comboBox qui n'est pas à «Liste valeurs».
Cette propriété a du rester à «Table/Requête».
A+
Super génial! Ca fonctionne comme ça!
Merci beaucoup!
Bonne journée
Bonjour,
Il ne te reste plus qu'à cliquer sur le boutonpour clore cette discussion
A+
Bonsoir,
Une autre façon d'obtenir toutes les tables (y compris tables systèmes) dans une liste simple.
1-Créer un module avec la fonction ci-après :
2-Créer un formulaire avec un contrôle liste simple, un contrôle étiquette et un contrôle bouton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 '***Lister toutes les tables d'une base de données Public Function ListeTablesBD() As String On Error Resume Next Dim madb As DAO.Database 'Déclaration de l'objet base de données Dim matable As DAO.TableDef 'Déclaration de l'objet table Dim nbmax As Integer 'Déclaration de la variable contenant le nombre total de tables dans la base de données Dim i As Integer 'Compteur de la boucle For Set madb = CurrentDb 'Affectation de la base de données en cours à la variable madb nbmax = madb.TableDefs.Count 'Initialisation de la variable nbmax avec le nombre de tables de la collection Table For i = 1 To nbmax 'Parcourt toutes les tables contenues et inscrit successivement leurs noms dans la variable ListeTablesBD If i = 1 Then ListeTablesBD = "Table n° " & i & " : " & madb.TableDefs(i - 1).Name 'Ajout 1ère table Else ListeTablesBD = ListeTablesBD & ";" & "Table n° " & i & " : " & madb.TableDefs(i - 1).Name 'Ajout des autres tables End If Next i madb.Close 'Fermeture de l'objet madb Set madb = Nothing 'Libération de la variable madb en mémoire End Function
Nom des contrôles : lstResultat et btnListeToutesLesTables et lblCommentaire
et incorporer le code ci-après dans l'évènement click du bouton.
3-Le résultat est l'affichage de toutes les tables de la base de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 '***Bouton Afficher toutes les tables Private Sub btnListeToutesLesTables_Click() lstResultat = Null 'Initialisation de la zone de liste recevant le résultat lstResultat.RowSourceType = "Value list" 'Définit la propriété Origine source de la zone de liste en tant que Liste de valeurs lstResultat.RowSource = ListeTablesBD 'Définit la propriété Contenu de la zone de liste avec les valeurs issues de la fonction lblCommentaire.Caption = "Cette base de données contient " & lstResultat.ListCount & " tables." End Sub
Tu peux aussi contrôler si une table existe en suivant le même principe : parcourt de la collection Tables.
Voila, bonne soirée.
Partager