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 :
- Créez un nouveau module standard dans votre base de données (onglet Modules).
- Recopiez le code ci-dessous dans ce module, puis enregistrez le module.
' ---
' SUPPRESSION DE PREFIXE DANS UN NOM DE TABLE
' ---
Function RenommerTables(ByVal strPrefixe As String)
Dim tdf As DAO.TableDef
' Supprimer le préfixe des tables
strPrefixe = UCase(strPrefixe)
For Each tdf In CurrentDb.TableDefs
If UCase(Left(tdf.Name, Len(strPrefixe))) = strPrefixe Then
tdf.Name = Mid(tdf.Name, Len(strPrefixe) + 1)
End If
Next
' Mettre à jour la fenêtre de base de données
Application.RefreshDatabaseWindow
End Function
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 :
- Faites apparaître la fenêtre Exécution (
CTRL + G).
- Tapez dans cette fenêtre :
RenommerTables "ORAVID_"
...si
ORAVID_ est le préfixe à enlever (notez que le souligné fait partie du préfixe, car il doit aussi être supprimé).
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.
Derniers commentaires