Tester l’existence d’une table

Comment savoir si une table (dont on connaît le nom) existe dans une base de données ?

Un peu de VBA…

Il y a plusieurs manières de le faire. Voici une fonction qui peut faire l’affaire (à recopier dans un module standard) :

La fonction renvoie True si la table (ou la liaison de table) existe, dans la base de données spécifiée. Elle renvoie bien sûr False sinon.

Important
L’exemple de code ci-dessus fait appel à la bibliothèque DAO (Microsoft DAO Object Library). Cette bibliothèque doit être associée à votre base de données pour que le programme fonctionne.

Pour plus de détails sur les références, consultez cette page.

Pour tester…

  1. Faites apparaître la fenêtre Exécution (CTRL + G).
  2. Tapez (sur une seule ligne) quelque chose comme :

Si vous obtenez Vrai (True)… c’est que la table existe bien dans la base actuelle.

Vous aimerez aussi...

4 réponses

  1. Hervé Inisan dit :

    Jeff > Exact (comme je le disais en début d’article, il y a bien plusieurs manières de faire).

    Pour faire court, on peut aussi faire :

    Voire remplacer la ligne strNom par celle-ci, pour cibler des versions plus anciennes d’Access :

    Ouala !

  2. Jeff dit :

    il existe une méthode directe sans boucle à l’aide de la collection AllTables de object CurrentData:

    Public Function TableExist(strTable As String) As Boolean

    Dim DateStr As String

    On Error GoTo ErrH

    If Len(strTable) > 0 Then
    DateStr = Application.CurrentData.AllTables(strTable).DateCreated
    TableExist = True
    Else
    TableExist = False
    End If
    ExitH:
    Exit Function
    ErrH:
    If Err.Number = 2467 Then ‘object inexistant
    strTable = False
    Resume ExitH
    End Function

  3. Hervé Inisan dit :

    Adéquat > Content que ça puisse rendre service ! 🙂

  4. Adéquat dit :

    Bonjour Hervé !

    Même si celà fait bientôt 5 ans que tu as posté cette astuce, je voudrai quand même te remercier car cette function m’a été très utile aujourd’hui 🙂

    Encore merci et bonne continuation !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *