IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Liste des tables [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut Liste des tables
    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

  2. #2
    Membre Expert
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Par défaut
    Bonjour,

    une piste de ce côté
    http://access.developpez.com/sources...terTablesChamp

    Cordialement

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    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.

  4. #4
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    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 :
    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
    Tu peux ensuite appeler cette quand bon te semble.
    Par exemple au chargement du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Load()
    ActualiserListeTables
    End Sub
    A+

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    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"

  6. #6
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    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+

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 71
    Par défaut
    Super génial! Ca fonctionne comme ça!
    Merci beaucoup!


    Bonne journée

  8. #8
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Il ne te reste plus qu'à cliquer sur le bouton pour clore cette discussion

    A+

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 21
    Par défaut Lister toutes les tables y compris tables systèmes
    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 :

    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
    2-Créer un formulaire avec un contrôle liste simple, un contrôle étiquette et un contrôle bouton
    Nom des contrôles : lstResultat et btnListeToutesLesTables et lblCommentaire
    et incorporer le code ci-après dans l'évènement click du bouton.

    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
    3-Le résultat est l'affichage de toutes les tables de la base de données.

    Tu peux aussi contrôler si une table existe en suivant le même principe : parcourt de la collection Tables.

    Voila, bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir le listing des tables d'une BDD
    Par zoubidaman dans le forum Outils
    Réponses: 1
    Dernier message: 10/11/2004, 01h17
  2. liste des tables d'une BDD
    Par 120 dans le forum ASP
    Réponses: 4
    Dernier message: 21/06/2004, 15h06
  3. liste des tables par base
    Par rupert dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/05/2004, 10h38
  4. Obtenir la liste des tables
    Par edamiral dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 23/04/2004, 14h33
  5. Liste des tables d'une bases de données spécifique
    Par faridos23 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/08/2003, 23h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo