Bonjour,
J'ai besoin de transférer des données récupérées d'une base Postgres PG1 vue en lecture seule vers une autre base Postgres PG2 qui est celle que j'utilise à la place de JET.
Je me connecte en ODBC à ces deux bases.
J'arrive par une requête directe "requete_dir" à récupérer toutes mes données (6000 et quelques lignes), et quand je lance cette requête, après une trentaine de secondes de moulinage, ACCESS m'affiche les données recueillies.
Pas de souci jusque là. Mais ensuite, j'aimerais transférer mes données dans une table de la bd "locale" PG2 liée à mon application ACCESS. D'où mes questions :
1/ comment me connecter à ma base en ACCESS ? J'ai lu le tutoriel très complet sur le sujet du site (http://ledzeppii.developpez.com/odbc-access/), mais ce n'est pas très clair pour moi qui ne connaît rien à ces technologies ! J'ai cherché un exemple simple de code INSERT à partir d'ODBC en VBA... sans succès. Je vois beaucoup de "bidouilles" et de mélange entre ADO, DAO, ODBC, etc. Je ne veux pas d'un tel code si possible. Est-ce que quelqu'un pourrait gentiment fournir une procédure SUB minimale de la forme :
2/ Est-il possible de faire l'ensemble de la manipulation : (a) requête pour extraire les données de la base PG1 en lecture seule + (b) transfert des données obtenues dans la base PG2 de l'application ? Autrement dit, peut-on se connecter à plusieurs bases Postgres (ou autres !) et faire le transfert de données sans passer par un intermédiaire ACCESS local ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub requete ' I - Connexion à la base PG2 via ODBC Dim ... ... ... = "Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=mabase;Uid=postgres;Pwd=monpasse;" ... ' II - Requête INSERT requete = "INSERT * INTO ma_table FROM [données obtenues à partir de ma requête directe requete_dir]" ... lien_vers_ma_base.InstructionPourLancerLaRequete requete ... End Sub
L'idée est bien sûr de créer ensuite un bouton sur l'interface afin de pouvoir lancer la requête à la demande... (A terme, il s'agira d'une requête de mise à jour lancée par l'utilisateur.)
Merci pour votre aide !
Partager