  ' Dclaration des variables utilises
  Dim BD1 As Database ' -> Base de donnees
  Dim iCmpt As Integer ' -> Pour compter le nbre de tables de la base
  Dim TD1 As TableDef ' -> Table que nous allons creer : NOM_DES_TABLES
  Dim Fld1 As Field ' -> Champ de la Table NOM_DES_TABLES
  Dim RS1 As Recordset ' -> Pour enregistrer dans NOM_DES_TABLES
  '-----------------------------------------------------------------------------
   
  ' Chemin d'acces a votre base de donnees
  ' Ici la bdd access se nomme "MA_BDD" et se
  ' trouve a la racine du disque dur C
  Set BD1 = DBEngine.OpenDatabase ("c:\MA_BDD.mdb")
  '----------------------------------------------------------------------------
   
  ' Creation de la table "NOM_DES_TABLES"
  Set TD1 = BD1.CreateTableDef("NOM_DES_TABLES")
  '----------------------------------------------------------------------------
   
  ' On cre le champs "NomTables" de type texte et
  ' limit a 50 charactres
  ' c'est cette colonne qui contiendra les noms des tables de la base MA_BDD
  Set Fld1 = TD1.CreateField("NomsTables", dbText, 50)
  '----------------------------------------------------------------------------
   
  ' On l'ajoute a la table "NOM_DES_TABLES"
  TD1.Fields.Append Fld1
  '----------------------------------------------------------------------------
   
  ' On ajoute la table ainsi cree a la base MA_BDD
  BD1.TableDefs.Append TD1
  '----------------------------------------------------------------------------
   
  ' On vide les buffer
  Set TD1 = Nothing
  Set Fld1 = Nothing
  '----------------------------------------------------------------------------
   
  ' On ouvre la table en mode ecriture pour
  ' permettre de rentrer des enregistrements
  Set RS1 = BD1.OpenRecordset("NOM_DES_TABLES", dbOpenTable)
  '----------------------------------------------------------------------------
   
  ' On parcourt la base MA_BDD
  For iCmpt = 1 To BD1.TableDefs.Count
  ' On inscrit les noms scanns dans le debuguer
  Debug.Print BD1.TableDefs(iCmpt - 1).name
  ' ---- Ligne optionnelle ---
  ' on ajoute a la table uniquement les tables dont le nom
  ' commence par "Liste"
  ' left ( chaine , nb_char_a_comparer) comparateur chaine_de_comparaison
  If Left(BD1.TableDefs(iCmpt - 1).name, 5) = "Liste" Then
  RS1.AddNew
  RS1.Fields("NomsTables") = BD1.TableDefs(iCmpt - 1).name
  RS1.Update
  End If
  Next
   
  RS1.Close
  BD1.Close
