[Access 2000]Liste des tables d'une BDD

Résolu
Bonjour,

Je travaille sous Access 2000 avec VBA et j'ai besoin, pourl'un de mes formulaire, d'avoir une liste déroulante (Zone de liste) qui contiendrait la liste des tables qui se trouvent dans ma base de données.

En fait je voudrait pouvoir faire comme pour oracle lorsque l'on demande de lister des table du scema de l'utilisateur, du genre
SELECT table_name FROM user_tables;
mais en version Access.

Je précise que dans cette meme base de données, j'ai des tables qui sont masqué, donc je ne veux afficher que ceux qui ne sont pas masquées.

Est il ppossible de faire ça ? et comment ?

Si oui pourriez m'aider parce que je ne sais pas comment le faire.
Donnez moi juste une petite indication pour m'aider à avancer ce serait bien.

Merci par avance.
Configuration: Windows 2000
Internet Explorer 6.0

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    Dim Nom$
    Dim UneTable
      For Each UneTable In CurrentData.AllTables
        Nom$ = UneTable.Name
        If (UCase(Left$(Nom$, 4)) <> "MSYS") And _
           (UCase(Left$(Nom$, 5)) <> "TABLE") Then  ' tri de certaines tables
          LST1.AddItem Nom$
        End If
      Next UneTable
    
    1. Excuse moi j'ai essayé ton code mais j'ai une erreur sur la ligne

      LST1.AddItem Nom$

      Access me dit "Membre de méthodes ou de données introuvable"

      C'est quoi cette erreur ?
  2. ce ne serait pas plutôt : ... CurrentDb.AllTables (plutôt que CurrentData) ?
    1. Bonjour,

      ça tourne chez moi comme ça (Access 2003) et l'aide précise clairement que AllTables s'applique à CurrentData
  3. Bonjour,

    je vais essayer ca et je vous dirais le résultat. Merci
    1. Le Père, j'ai essayé ton code mais il me met une erreur pour LST1.AddItem Nom$ avec comme message "Membre de méthode ou de donnée introuvable". C'est quoi cette erreur ?
      1. Bonjour,

        Laisse tomber le LST1 et ajoute le Nom$ dans ta liste par une autre méthode. La méthode Additem n'existe pas dans toutes les variantes de VBA, j'ai déjà rencontré le cas.
      2. @le pèreOK je vais essayer merci

        ------------------------------------------------------------------------------------------------------------
      3. Pour Access97, pas de Méthode AddItem aux comboBoxes...
        faut donc utiliser RowSource :

        Private Sub Form_Load()
        Dim sBuffer As String
        Dim oTable As TableDef
        For Each oTable In CurrentDb.TableDefs
        If LenB(sBuffer) Then
        sBuffer = sBuffer & ";"
        End If
        sBuffer = sBuffer & oTable.Name
        Next oTable
        Modifiable0.RowSourceType = "Value List"
        Modifiable0.RowSource = sBuffer
        End Sub
    2. Bon j'ai modifié pour avoir la liste des tables de la base de donnée et ca marche.

      Merci le Pèere pour ton aide ...

      J'ai juste un autre problème si tu pouvais m'aider STP ??

      Mon problème est que dans ma base, j'ai des tables qui sont masquées donc qui ne doivent pas apparaitre dans la liste déroulante.

      Comment je dois faire pour ne pas les afficher ?
      1. Laissez tomber; j'ai fait autrement en passant par une table.
        1. Bonjour Mishan,

          je sais que c'est un peu obsoléte de te poser cette question mais je n'arrive pas à faire une liste des table qui se trouve dans ma BD...peut tu m'aider?
          je suis débutant, j'ai beau essayé de chercher mais rien n'y fait...
          je t'explique, j'ai créé un userform ou était un combobox (dans XL), je voudrais grace a une macro récupérer toutes les tables de ma BD et faire le choix d'en sélectionner, pour la visualiser apres...je ne sais pas si je me suis fait bien comprendre...

          en tout cas je pense que tu pourrais m'aider...

          Merci par avance!