Travailler avec une base de données PostgreSQL en VBA
Bonjour à tous et à toutes.
Voila mon soucis, je dois développer une macro qui va récupérer des infos dans une base POSTGRESQL et je nage un peu. Il y a beaucoup d'inconnus pour moi, je solicite donc votre aide pour répondre aux questions suivantes :
- Tout d'abord pour communiquer avec la base, j'ai vu qu'il fallait installer un driver ODBC.
J'ai d'abord, sur les conseil de microsoft installé Npgsql mais celui-ci n'était pas reconnu dans les outils d'administration ODBC (pas de driver présent).
J'ai donc trouvé PSQLODBC (j'ai pris la dernière version).
Donc première question, je fais quoi de Npgsql? Je peux le désinstaller ? Ou je désinstalle le second (dans ce cas comment faire reconnaitre le driver ?"
- Deuxième question, après beaucoup de difficulté j'ai réussi à me connecté à la base de donnée, grace au code suivant :
Sub Connexion()
Dim CONN As New ADODB.Connection
CONN.ConnectionString = "DRIVER={PostgreSQL UNICODE};Port=5432;SERVER=monserveur ;DATABASE=madb Uid=monID; Pwd=monMDP"
CONN.Open
MsgBox "connexion réussie"
CONN.Close
End SubMa question est : J'ai vu qu'il y avait 2 driver dans ODBC : UNICODE et ANSI, je me suis connecté en UNICODE pour le test mais sachant que ma BDD est codée en UTF8 du coup pour récupérer les données dans EXCEL vaut-il mieux utiliser UNICODE ou ANSI ?
Enfin à partir de là, avez vous un site sympa à me conseiller pour passer des requêtes SQL à la base, sachant que l'informaticien qui a monté le site (la base) a eu la gentillesse de m'écrire les différentes requête dont je vais avoir besoin ?
Par avance merci
Bien alors je me répond partiellement.
1 - je vire Npgsql vu que ça fait double emploi .
2 - je testerai la différence dès que j'aurais trouvé comment on fait les requêtes en Ado.
3 - j'ai peut être une piste mais je suis toujours preneur d'une bonne Doc
Bon finalement je me suis débrouillé...
Option Explicit
Sub Connexion()
Dim CONN As New ADODB.Connection
Dim rs As New Recordset
CONN.ConnectionString = "chaine de connexion"
CONN.Open
MsgBox "connexion réussie"
Set rs = CONN.Execute("Requete SQL")
[A1].CopyFromRecordset rs
rs.Close
CONN.Close
End SubAvec ça j'ai tout ce dont j'ai besoin, yapluka... Comme on dit on n'est jamais mieux servi que par soi même