A rédiger ...
A rédiger ...
Lancer ACCESS et créer une base de données vide. Lui donner un nom et un emplacement physique.
Ouvrir le menu "Fichier -> Données externes -> Lier les tables"
Dans le menu popup en bas "Type de fichiers", choisir tout à la fin de la liste "ODBC Database".
Sélectionner l’onglet "Source de données machine" et cliquer sur le "Nom de la source de données" que vous aurez préalablement configurer dans le pilote ODBC.
Un nouvel onglet "Table" apparait. Sélectionner l’ensemeble des tables (choix multiple) en cliquant sur chacunes d’elles et en maintenant la touche SHIFT appuyée.
Appuyer ensuite sur le bouton OK. La fenetre principale d’Access contenant la liste des tables doit apparaitre à l’écran. Au besion, l’agrandir pour visualiser l’ensemeble des tables.
Par défaut, PostgreSQL crée les tables dans le schéma public. Dans ce cas, on accède à une table soit par son nom seul, soit préfixé du schéma public :
select * from public.mesure;
ou
select * from mesure;
Malheureusement, Access préfixe le schema avec un underscore et non un point :
public_mesure
A moins de renommer manuellement chacune des tables, ce qui peut être vite fastidieux, il ne sera pas possible par la suite d’utiliser des requête SQL Access depuis le client psql.
La solution consiste à renommer automatiquement l’ensemble des tables liées avec une macro en Visual Basic. Le code source de la macro "renom" est disponible ci dessous :
Pour l’utiliser, ouvrir l’éditeur Visual Basic (ALT+F11) ou menu "Outils->Macro". Une fois l’éditeur ouvert, il faut charger une bibliothèque DAO. Pour cela, ouvrir le menu "Outils->Référence" puis cocher la case "Microsoft DAO 2.5/3.51 Compatibility Library" dans liste qui apparait à l’écran. Valider ce nouveau choix par l’appui sur OK.
Ensuite, aller dans le menu "Insertion->Module" pour créer le script. Il doit apparaître une fenêtre d’édition. Copier le contenu du fichier joint sous la ligne :
Option Compare Database
Décommenter la ligne commencant par
' Debug.Print
pour rendre le script "plus bavard".
Dans la fenêtre "exécution", taper la ligne suivante :
renom("Public_")
Sauvegarder le module sous un nouveau nom (renom) par exemple avec la commande "CTRL+S".
Retourner sous Access avec "ALT+Q". Normalement, les noms de tables ne sont plus préfixés.
Merci à Jean Jacques Lechauve qui a rédigé le script VBA.
A suivre ...
bonjour ;
j’ai une application vb6.0 et postgresql 8.0, j’ai des problèmes d’exécutions des requettes.
comment exécuter des reqeuttes pour acceder à la table.
j’ai le msg d’erreur suivant :
ERROR : relation "nom de la table" does not exit ;
error while executiong the query.
voilà mon mail : visual_nabil@yahoo.fr
Merci d’avance