Principe
PostgreSQL est un excellent moteur de bases de données Open Source. Si vous disposez d'un serveur faisant tourner une base de données PostgreSQL, vous aurez peut-être besoin d'en extraire des données via OLEDB. Cet article décrit les principes de base pour le faire (à vous de broder ensuite !).
Remarque
Cet article ne décrit pas l'installation de PostgreSQL, ni sa configuration (notamment en termes d'autorisations d'accès), ni la création de bases sur PostgreSQL. Rien du côté serveur, na ! Je suppose que vous avez tout ce qu'il faut de ce côté, on s'occupe seulement d'Access !
Sinon, vous avez bien sûr toute la documentation utile sur le site de référence : www.postgresql.org.
Autre remarque (vous êtes gâtés :-))
Il est également possible (et plus simple) de se connecter à une base PostgreSQL via ODBC. Ca fera sans doute l'objet d'un autre article, si vous en manifestez l'intérêt. Ici, nous parlons seulement ADO et OLEDB.
Installer le pilote OLEDB
Le pilote OLEDB de PostgreSQL doit être téléchargé puis installé sur votre machine avant toute chose. Il servira de passerelle entre Access (ou n'importe quel logiciel !) et PostgreSQL.
- Téléchargez le pilote sur le site www.postgresql.org (suivez ensuite le lien Download, puis PgOleDb (le lien étant susceptible de changer, je vous le donne brut !).
- Décompactez le fichier obtenu sur votre disque. Vous obtenez notamment 2 fichiers : libpq.dll et pgoledb.dll.
- Copiez ces 2 fichiers dans votre dossier système (par exemple : C:\Windows\System).
- Démarrez l'invite de commandes DOS (sous Windows XP : ).
- Tapez : cd C:\Windows\System (aménagez selon votre configuration ; l'idée est de se placer dans le dossier contenant les fichiers DLL copiés plus haut).
- Enregistrez le pilote OLEDB par l'instruction :
regsvr32 pgoledb.dll
Un message devrait vous signaler que c'est fait...
Désinstaller le pilote OLEDB
Si vous deviez désinstaller le pilote OLEDB, placez-vous dans le même dossier et tapez : regsvr32 -u pgoledb.dll
Retour dans Access
Dans Access, ouvrez ou créez une base de données puis :
- Assurez-vous que la bibliothèque ADO (Microsoft ActiveX Data Objects) est cochée dans le menu de Visual Basic Editor.
- Créez un module standard (), puis recopiez-y le code suivant (aménagez en fonction de votre serveur, de votre base, bien sûr !) :
Les codes à remplacer dans la chaîne de connexion sont :
- SERVEUR : le nom ou l'adresse IP de votre serveur PostgreSQL
- BASE : le nom de votre base de données
- UTILISATEUR : le nom d'un utilisateur autorisé à se connecter à la base
- MOTDEPASSE : à votre avis :-) ?
- ' ---
- ' EXEMPLE DE CONNEXION OLEDB SUR POSTGRESQL
- ' ---
- '
- Function ADO_PG_Connect()
- Dim cnn As ADODB.Connection
- Dim rst As ADODB.Recordset
- Dim strCnn As String ' Chaîne de connexion
- Dim strSQL As String ' Instruction SQL
- ' Chaîne de connexion
- strCnn = "Provider=PostgreSQL;Data Source=SERVEUR;Location=BASE;User ID=UTILISATEUR;Password=MOTDEPASSE;"
- ' Ouvrir la connexion
- Set cnn = New ADODB.Connection
- cnn.Open strCnn
- ' Ouvrir et parcourir une table
- Set rst = New ADODB.Recordset
- strSQL = "SELECT * FROM la_table"
- rst.Open strSQL, cnn, adOpenDynamic, adLockOptimistic
- While Not rst.EOF
- ' On affiche les résultats dans la fenêtre Debug
- Debug.Print rst("un_champ"), rst("un_autre_champ")
- ' Enregistrement suivant
- rst.MoveNext
- Wend
- rst.Close
- Set rst = Nothing
- ' Fermer et libérer les ressources
- cnn.Close
- Set cnn = Nothing
- End Function



Dans cet article...
Article mis à jour le 07/02/2009