Toute l'actualité de [self-access.com] en direct sur votre ordinateur !  Vous êtes ici : Accueil » Access » Tutoriaux » Access et PostgreSQLConnexion
 


Dans cet article... 
  • Principe
  • Installer le pilote OLEDB
  • Retour dans Access
  •  Article mis à jour le 07/02/2009

    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.

    1. 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 !).
    2. Décompactez le fichier obtenu sur votre disque. Vous obtenez notamment 2 fichiers : libpq.dll et pgoledb.dll.
    3. Copiez ces 2 fichiers dans votre dossier système (par exemple : C:\Windows\System).
    4. Démarrez l'invite de commandes DOS (sous Windows XP : Démarrer / Tous les programmes / Accessoires / Invite de commandes DOS).
    5. 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).
    6. 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 :

    1. Assurez-vous que la bibliothèque ADO (Microsoft ActiveX Data Objects) est cochée dans le menu Outils / Références de Visual Basic Editor.
    2. Créez un module standard (Insertion / Module), 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 :-) ?
    1. ' ---
    2. ' EXEMPLE DE CONNEXION OLEDB SUR POSTGRESQL
    3. ' ---
    4. '
    5. Function ADO_PG_Connect()
    6. Dim cnn As ADODB.Connection
    7. Dim rst As ADODB.Recordset
    8. Dim strCnn As String    ' Chaîne de connexion
    9. Dim strSQL As String    ' Instruction SQL
    10.  
    11. ' Chaîne de connexion
    12. strCnn = "Provider=PostgreSQL;Data Source=SERVEUR;Location=BASE;User ID=UTILISATEUR;Password=MOTDEPASSE;"
    13.  
    14. ' Ouvrir la connexion
    15. Set cnn = New ADODB.Connection
    16. cnn.Open strCnn
    17.  
    18. ' Ouvrir et parcourir une table
    19. Set rst = New ADODB.Recordset
    20. strSQL = "SELECT * FROM la_table"
    21. rst.Open strSQL, cnn, adOpenDynamic, adLockOptimistic
    22. While Not rst.EOF
    23.     ' On affiche les résultats dans la fenêtre Debug
    24.     Debug.Print rst("un_champ"), rst("un_autre_champ")
    25.    
    26.     ' Enregistrement suivant
    27.     rst.MoveNext
    28. Wend
    29. rst.Close
    30. Set rst = Nothing
    31.  
    32. ' Fermer et libérer les ressources
    33. cnn.Close
    34. Set cnn = Nothing
    35. End Function

    Mes livres sur Access...
    [cliquez pour plus d'infos]





    Hit-Parade 
     
    [ Copyright 1997-2018 hervé inisan, self-access.com Reproduction interdite ]