|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : août 2010 Messages : 67 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : janvier 2006 Messages : 99 ![]() |
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. |
|
|
20
|
Copyright © 2000-2012 - www.developpez.com