Importer un fichier excel dans access ? [Résolu]

Signaler
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
-
salut

jaimerai pouvoir importer des données contenues dans un fichier excel directement dans ma table access ?

merci

17 réponses

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
la c un autre souci , il faudrait voir le code de remplissage du treeView ( il ne doit pas être TOP )!
on est plus dans le même sujet..
coches reponses accptées

It@li@
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
il y a plusieurs methodes voici celle que j'utilise :
en DAO
coches Projet...Références...Microsoft DAO 3.51 Object Library
et Microsoft Excel XX Object Library

en haut de ta Form :
Public ClasseurXLS As Object

dans le Code de ton bouton par exemple :
Set ClasseurXLS = CreateObject("Excel.application")
ClasseurXLS.Workbooks.Open "C:\MonFichier.xls"
mousepointer=11

ValTitle = ClasseurXLS.Cells(1, "B")
ValLocation = ClasseurXLS.Cells(2, "B")
ValVille = ClasseurXLS.Cells(3, "B")
ValCodePostal = ClasseurXLS.Cells(4, "B")
ValDate = ClasseurXLS.Cells(5, "B")
Set Db = OpenDatabase("C:\MaBase.mdb")
Set Req= Db.OpenRecordset("SELECT * FROM TaTable")
Req.Addnew
Req(1)=ValTitle
Req(2)=ValLocation
Req(3)=ValVille
Req(4)=ValCodePostal
Req(5)=ValDate
Req.Update
Set Req=Nothing
Set Db=Nothing
ClasseurXLS.Workbooks.Close ' Fermeture du Classeur d' Importation

mousepointer=1

It@li@
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

je vais essayer merci

mais cette méthode ouvre excel ou cest transparant ?
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Transparent pour le Users

It@li@
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

merci
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

ValTitle = ClasseurXLS.Cells(1, "B")

B correspond a quoi ?
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

ah jai trouvé : a la colonne Excel
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

par contre jai un soucis

voila dan ma colonne excel je vais avoir plein de ligne seulement je ne connaitrais pas a lavance combien il y a de ligne

ValTitle = ClasseurXLS.Cells(1, "B")

faudrait faire une boucle pour quil enregistre tout ce quil trouve dans la colonne B mais jy arrive pas
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
tu as qu'a les stocker dans un tableau

It@li@
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

cest a dire ?
jvois pas le code a faire
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
dans ta base tu veux tous stocker dans une colonne ou tu as différents champs ??
si tu as qu'une colonne c simple

It@li@
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

nan jai 4 colonnes dans mon fichier excel que je veux stocker dans 4 champs dans ma base
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Ok voici alors le code :

en haut de ta Form :
Public ClasseurXLS As Object

dans le Code de ton bouton par exemple :
Set ClasseurXLS = CreateObject("Excel.application")
ClasseurXLS.Workbooks.Open "C:\MonFichier.xls"
mousepointer=11

For i = 1 to 2000
ValTitle = ClasseurXLS.Cells(1, "B")
ValLocation = ClasseurXLS.Cells(2, "B")
ValVille = ClasseurXLS.Cells(3, "B")
ValCodePostal = ClasseurXLS.Cells(4, "B")
If ValTitle="" and ValLocation ="" and ValVille ="" and ValCodePostal ="" then exit for
Set Db = OpenDatabase("C:\MaBase.mdb")
Set Req= Db.OpenRecordset("SELECT * FROM TaTable")
Req.Addnew
Req(1)=ValTitle
Req(2)=ValLocation
Req(3)=ValVille
Req(4)=ValCodePostal
Req.Update
Next

Set Req=Nothing
Set Db=Nothing

ClasseurXLS.Workbooks.Close ' Fermeture du Classeur d' Importation

mousepointer=1

It@li@
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Excuse mais le
Set Db = OpenDatabase("C:\MaBase.mdb")
Set Req= Db.OpenRecordset("SELECT * FROM TaTable")

il est préférable de le mettre avant la boucle For

It@li@
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

ca menregistre 2000 champ meme si il ya rien dans 1990 dentre eux

en fait il prend tout au lieu de prendre seulement ceux qui sont rempli
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
changes alors le test des ligne ainsi :

If len(ValTitle)=0 and len(ValLocation) =0 and len(ValVille) =0 and len(ValCodePostal) =0 then exit for

It@li@
Messages postés
191
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
27 octobre 2008

alors ca marche bien, ca enregistre dans la base mais soucis :
- lorsque jaffiche les infos dans mon listview il veut pas afficher lorsque le champ est vide (ex : nom michel ; prenom rien)