Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2010, 11h36   #1
Futur Membre du Club
 
Inscription : août 2010
Messages : 67
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2010
Messages : 67
Points : 18
Points : 18
Par défaut Copier une BDD rapidement via lien ODBC

Bonjour à tous, je vous expose mon problème :

Je dois copier une base de donnée propriétaire (logiciel SAGE ligne 100) dans une base ACCESS 07, via du code VisualBasic.
Pour la connexion à la base de données, j'utilise une connexion ODBC en passant par un DSN, et l'objet ADODB.RecordSet pour copier chaque ligne dans une base ACCESS.
Mon problème est que c'est trop long ! Je met environ 1 minute pour copier 2200 lignes.
J'ai essayé de faire la même chose en mode graphique avec les outils ACCESS (lier une base de donnée + requete) et le resultat est quasi-instantané.
Comme il s'agit de la meme connexion, je pense que mon problème vient de l'objet que j'utilise, qui ne doit pas être très optimisé.

Ma question est la suivante :

Existe-t'il un autre objet que le recordset, ou carrément une autre méthode pour copier une table entière ?

Merci pour vos réponses.
greg360 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 15h41   #2
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Bonjour,

si j'ai bien compris ce que tu fais : tu te connectes à la base SAGE, tu lis les enregistrements des tables que tu recopies un à un dans une table Access de structure identique. C'est bien ça ?

Si c'est le cas, il y a effectivement une méthode plus simple qui consiste à faire exactement les mêmes opérations que les outils graphiques Access.
Je te conseille de te tourner vers la méthode TransferDatabase (de DoCmd) pour effectuer la liaison de la table ODBC avec ta base Access. Puis regarde la méthode RunSQL (là aussi de DoCmd) pour exécuter la requête qui insert les enregistrements d'une table à l'autre. Normalement, l'aide en ligne contient des exemples ODBC qui devraient te permettre de t'en sortir.
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h46.


 
 
 
 
Partenaires

Hébergement Web