Simplifier les noms de tables liées

Vous avez vu dans cet article comment lier des tables Oracle à un frontal Access (le principe étant sensiblement le même pour d’autres moteurs comme MySQL ou PostgreSQL). Le problème est que, dans ce cas, le nom des liaisons reprend généralement le schéma de la base de données d’origine. Comment simplifier ces noms rapidement ?

Un exemple ?

Dans l’exemple ci-dessous, les tables tblActeurs, tblClients et autres sont utilisées par un utilisateur ORAVID, ce qui équivaut à un schéma dans la base Oracle (en gros : un espace de travail cloisonné). En SQL, la table serait référencée par ORAVID.tblActeurs ; par contre, la liaison Access devient ORAVID_TBLACTEURS.

L’inconvénient est que les objets Access (requêtes, formulaires, états ou code VBA) qui vont reposer sur ces liens vont utiliser ces noms longs, ce qui n’est pas vraiment pratique. Rien ne vous empêche de les modifier (notamment d’enlever ORAVID_, dans l’exemple ci-dessus), pour simplifier votre travail.

Enlever le préfixe de façon automatique

La première solution consiste à renommer chaque liaison manuellement : clic droit / Renommer (ou F2) sur une liaison, puis suppression du préfixe ORAVID_. Mais on peut faire mieux si le nombre de tables est important :

  1. Créez un nouveau module standard dans votre base de données (onglet Modules).
  2. Recopiez le code ci-dessous dans ce module, puis enregistrez le module.

Le bout de code ci-dessus parcourt toutes les tables (ou liaisons) de la base de données Access, à la recherche d’un préfixe donné. Si le nom de la table démarre par ce préfixe, celui-ci est supprimé. Pour appeler la fonction :

  1. Faites apparaître la fenêtre Exécution (CTRL + G).
  2. Tapez dans cette fenêtre :

…si ORAVID_ est le préfixe à enlever (notez que le souligné fait partie du préfixe, car il doit aussi être supprimé).

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.

Vous aimerez aussi...

3 réponses

  1. naphta dit :

    Bonjour et merci bien pour cette contribution
    à bientôt

  2. Hervé Inisan dit :

    Je pense qu’Access n’est pas utile dans ce cas. Je ferais en sorte que Word attaque directement les données SQL Server.

    Sous Word 2003, par exemple, on peut créer une source ODC qui ressemble à une connexion ODBC. Il suffit de fournir le nom du serveur SQL Server, un nom d’utilisateur, et le mot de passe qui va avec. A partir de là, Word peut voir les tables et les requêtes (vues) SQL Server, et les utiliser comme source de publipostage.

  3. lulu_50 dit :

    Lier ACCESS et SQL SERVER, c’est très pratique, mais comment on fait le publipostage d’un table liée à SQL SERVER vers Word?

Laisser un commentaire

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