|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 37 ![]() |
Bonjour,
Je cherche le code VBA qui permet de copier une table X d'une base B1 vers une base B2, au départ de la base B2. Lier la table X dans B2 n'est pas une bonne solution dans mon cas, pour des raisons de performance (B1 et B2 sont sur des serveurs différents et B2 sert de datawarehouse pour une application BI). La solution SQL n'est pas satisfaisante (SELECT * INTO X2 FROM X1, où X1 est un lien vers la table X dans B1) : la création de X2 est assez rapide, mais il faut ensuite créer la clé primaire et les index dans X2 (également en SQL) et ça, ça prend beaucoup trop de temps. Reste donc la copie de la table (avec ses index). Merci d'avance pour vos conseils et aides. JL |
|
|
00
|
|
|
#2 |
![]() ![]() |
Salut,
en utilisant des boucles for each de ta table d'origine, t'est-il possible de creer d'abord ta table finale, puis d'importer les data via une requete ? ton temps de traitement devrait deja etre tres reduit Cette partie du tutorial sur DAO de Tofalu devrait te permettre de faire cela :http://warin.developpez.com/access/d...=partie_4#L4.3
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 37 ![]() |
Merci pour ta réponse.
J'espérais qu'il existait une méthode simple du genre "copy table" soit en DAO soit en SQL (comme p. ex. en Postgresql), ce qui éviterait le traitement ligne à ligne avec un recordset. Mais ta suggestion m'a donné une idée qui donne une bonne performance : 1. dans la base B2, créer un lien LT1 vers la table T1 de la base B1 2. avec une requête SQL, créer la table T2 dans B2 mais sans la remplir 3. toujours en SQL, ajouter la clé primaire et les index (ça va beaucoup plus vite quand la table est vide) 4. en SQL, remplir la table T2 à partir de LT1 JL |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 215 ![]() |
Citation:
je n'arrive pas à comprendre ta démarche. Sous Access il est possible soit de lier des tables à des bases comme PostGresSQL soit d'importer les tables.
__________________
Alea Jacta Est |
|
|
|
00
|
|
|
#5 | ||||
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
Personnellemt j'utilise cette technique pour créer une table dans la mm base :
Code :
Après j'utiliserais ceci : Code :
J'espère t'avoir aidé ^^. Cordialement, Q.D. |
||||
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 37 ![]() |
Merci pour vos réactions.
A Mat.M : La démarche, c'est de copier une table d'une base mdb dans une autre base mdb dans une procédure vba. Je sais qu'on peut importer une table d'une base dans une autre en Access avec les menus mais moi je dois le faire dans un programme vba. A Nitromard : Bravo. C'est exactement ce que je cherchais. Je n'avais pas pensé trouver la solution dans les DoCmd. Merci. JL |
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Quentin D.Étudiant Inscription : avril 2011 Messages : 175 ![]() |
N'oublie pas de mettre la discussion en résolue, le bouton se trouve en bas de la discussion quand tu es connecté.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com