Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[VBA][ADO] Comment exporter une feuille Excel dans une base de données

281 views
Skip to first unread message

Stéphane Santon

unread,
Jul 11, 2004, 3:29:55 PM7/11/04
to
Bonjour,

Je souhaite changer le format d'une table de données depuis des feuilles
Excel vers une base Access Jet à travers ADO.

Je pense créer un RecordSet à partir des données de la feuille Excel,
puis de le transférer dans la table. Mais selon quelle procédure ?
Celle-ci est-elle correcte :

- Créer une requête Select qui renverrait ces données dans un RecordSet
si elles existaient dans la table,
- peupler le RecordSet avec les données de la feuille,
- et faire un RecordSet.Update.

?

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.

Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

Rv

unread,
Jul 12, 2004, 4:13:53 AM7/12/04
to
Bonjour,

> Je souhaite changer le format d'une table de données depuis des feuilles
> Excel vers une base Access Jet à travers ADO.

Changer le format (structure??) ou le contenu (données!) de la table access?


> Je pense créer un RecordSet à partir des données de la feuille Excel,
> puis de le transférer dans la table. Mais selon quelle procédure ?
> Celle-ci est-elle correcte :
>
> - Créer une requête Select qui renverrait ces données dans un RecordSet
> si elles existaient dans la table,
> - peupler le RecordSet avec les données de la feuille,
> - et faire un RecordSet.Update.
>


Un recordset, avec possibilité d'ajout, pour manipuler les données de la
table Access.
Eventuellement un autre recordset, en lecture, pour les données d'Excel. Ou
bien lecture des données Excel par le modèle d'objet Excel.
Parcours des données d'excel et ajout dans la table access.

Pour aller plus loin il faut préciser:
- les structures de la table Access et des données dans Excel.
- sur quelles critères on ajoute des données de Excel dans Access.

A+

Rv


Stéphane Santon

unread,
Jul 12, 2004, 11:08:13 AM7/12/04
to
Bonjour,

Rv a écrit :


> > Je souhaite changer le format d'une table de données depuis des feuilles
> > Excel vers une base Access Jet à travers ADO.
>
> Changer le format (structure??) ou le contenu (données!) de la table access?

Même structure, même données, seulement ajouter les données d'une
feuille Excel à une table Access.
Ma table Excel passe donc au format Access.

> > Je pense créer un RecordSet à partir des données de la feuille Excel,
> > puis de le transférer dans la table. Mais selon quelle procédure ?
>

> Un recordset, avec possibilité d'ajout, pour manipuler les données de la
> table Access.

Possibilité d'ajout ? Comment le spécifier ?

> Eventuellement un autre recordset, en lecture, pour les données d'Excel.

OK

> Parcours des données d'excel et ajout dans la table access.

Voilà le point de ma question :
Comment ajouter tout le contenu du RecordSet Source Excel dans la table
access en une seule commande, sans faire un Execute( "INSERT INTO...")
pour chaque ligne ?

> - les structures de la table Access et des données dans Excel.

> - sur quels critères on ajoute des données de Excel dans Access.

On ajoute tout.

Merci

michdenis

unread,
Jul 12, 2004, 2:28:02 PM7/12/04
to
Bonjour Stéphane,

Pour le temps que va durer l'exportation, on doit créer une plage nommée de la colonne à exporter vers la base de
données.

Cette plage nommée dans l'exemple s'appelle "Plage".
La toute première ligne de la plage nommée "plage" représente les étiquettes de colonne qui elles portent le même nom
que leur vis à vis de la table où les données seront exportées.

Dans l'exemple suivant, il ne te restera plus qu'à adapter le nom des objets selon ton application.

toto = Nom de la table dans la base de données Comptoir.mdb

Pour ce qui est du champ de numéro automatique dans ta base de données, il va se mettre à jour tout seul !

Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy
'--------------------------------------------
Sub ExporterVersAccess()

Dim bd As DAO.Database
Dim Rst As DAO.Recordset

With Worksheets("Feuil1")
.Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage"
End With

Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")

bd.Execute "INSERT INTO toto IN 'C:\Excel\Comptoir.mdb' SELECT * FROM [Plage]"
ThisWorkbook.Names("Plage").delete
bd.Close
Set bd = Nothing
End Sub
'--------------------------------------------


Salutations!


"Stéphane Santon" <new...@team-santonum.com> a écrit dans le message de news:40F2A95D...@team-santonum.com...

Stéphane Santon

unread,
Jul 15, 2004, 11:35:05 AM7/15/04
to
Bonjour,

Ca marche impecc ! Merci :-)

Quelle est la différence entre les library ADO (2.5) et DAO (3.6) ??
Changement de nom de produit ou fonctionnalités différentes ?

michdenis a écrit :


> Évidemment, tu dois ajouter la bibliothèque : Microsoft DAO 3.6 objects Librairy
> '--------------------------------------------
> Sub ExporterVersAccess()
>
> Dim bd As DAO.Database
> Dim Rst As DAO.Recordset
> With Worksheets("Feuil1")
> .Range("B4:B" & .Range("B65536").End(xlUp).Row).Name = "Plage"
> End With
>
> Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
> bd.Execute "INSERT INTO toto IN 'C:\Excel\Comptoir.mdb' SELECT * FROM [Plage]"
> ThisWorkbook.Names("Plage").delete
> bd.Close
> Set bd = Nothing
> End Sub
>

> "Stéphane Santon" <new...@team-santonum.com> a écrit dans le message de news:40F2A95D...@team-santonum.com...

> > > Je souhaite changer le format d'une table de données depuis des feuilles
> > > Excel vers une base Access Jet à travers ADO.

--

michdenis

unread,
Jul 15, 2004, 6:01:48 PM7/15/04
to
Bonjour Stéphane,


"Quelle est la différence entre les library ADO (2.5) et DAO (3.6) ?"

La question est beaucoup trop générale pour en débattre ici. Il y a beaucoup d'articles dans la base de connaissance de
Microsoft qui traite soit de ADO ou de DAO .

Une adresse parmi plusieurs : (en anglais)
Pour Activex Data Object (ADO) :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/dasdkadooverview.asp

Pour Data Access Objects (DAO).:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_what_are_dao_and_odbc.3f.asp


Salutations!


"Stéphane Santon" <new...@team-santonum.com> a écrit dans le message de news:40F6A429...@team-santonum.com...

Stéphane Santon

unread,
Jul 19, 2004, 3:52:09 AM7/19/04
to
Bonjour,

Ces 2 adresses parlent chacune de leur propre intérêt, mais je n'ai pas
trouvé les différences et critères de choix.

En clair :
- ADO est un ActiveX
- DAO ne l'est pas.

Donc pour une appli VBA où l'on n'insère pas des composants sur les
fiches, ADO est inutile ??

Sinon les capacités d'accès aux données de sources diverses et de mise à
jour sur feuille Excel sont-elles les mêmes ?

michdenis a écrit :


> "Quelle est la différence entre les library ADO (2.5) et DAO (3.6) ?"
>
> La question est beaucoup trop générale pour en débattre ici. Il y a beaucoup d'articles dans la base de connaissance de
> Microsoft qui traite soit de ADO ou de DAO .
>
> Une adresse parmi plusieurs : (en anglais)
> Pour Activex Data Object (ADO) :
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/dasdkadooverview.asp
>
> Pour Data Access Objects (DAO).:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_what_are_dao_and_odbc.3f.asp

--

0 new messages