Importation de données depuis excel vers access

colibrialuile Messages postés 25 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 3 mai 2005 - 27 avril 2005 à 16:17
rach_zar Messages postés 7 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 23 mai 2005 - 23 mai 2005 à 15:37
Bonjour a tous et a toutes,
jai un probleme avec access, je veux importer des données depuis excel vers access, j'ai reussi à le faire dans une macro access ("TransférerFeuilleCalcul") mais a chaque fois que j'éxecute la macro les données excel (10 lignes d'une seule collone) sont mises les une a la suite des autres (si je l'éxecute trois fois de suite j'aurais des données qui se repete toute les dix lignes sous ma table access) et moi je voudrais que quand j'éxecute la macro, ça recopie les 10 lignes de la collone d'excel dans les 10 premières lignes de la table access, à chaque execution, une sorte de mise a jour, comme ca ,si une valeur a changé dans excel, elle sera modifié aussi dans access, après l'execution de la macro.
C'est important car je dois faire ça pour mon stage, merci a vous.
Merci, a celui qui saura m'aider et aux autres aussi.
TCHAO

3 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
27 avril 2005 à 21:52
Il te suffit pour cela que tu reçoives tes 10 lignes dans la Feuil1 sur la première colone


Tu donnes un nom à ta colonne à la ligne n°1


Et tu formates les cellules au format qu'elles doivent recevoir.

Une fois que c'est fait dans access tu lances cette fonction


que tu écris dans un module:


Public Function MsImportation()


DoCmd.Hourglass True 'lance le sablier pour montrer que ça charge


'Cette fonction crée des tables Feuil1$_ImportErrors (des fois)

'Continue à partir de suite en cas d'erreur du DeleteObject


On Error GoTo suite


'Suppression de la table copiée lors de la dernière ouverture (pour la MAJ des données)


DoCmd.DeleteObject acTable, NomDeLaTableCréée


suite: 'Si la table n'existe pas, l'erreur amène ici, on importe directement


MsgBox "Patientez pendant le chargement de la table", , "Chargement en cours..."


'Création d'une table à partir d'un fichier excel par ex CheminNomFic = "C:\Fichier.xls"


DoCmd.TransferSpreadsheet acImport, 8, NomDeLaTableACréer, CheminNomFic, True


'Lancement de la procédure d'effacement des tables d'erreurs


EffaceTableErreurImport


Docmd.Hourglass false 'Arrête le sablier


End Function


'fonction qui efface les tables d'erreurs


Public Sub EffaceTableErreurImport()


Dim Ctr


Dim Effacer As Boolean


On error goto fin


'Pour toutes les tables de la BD en cours, Effacer = false


For Each Matable In CurrentDb.TableDefs


Effacer = False


For Ctr = 1 To Len(Matable.Name)


'Efface toutes les tables contenant "$" dans leur nom


If Mid$(Matable.Name, Ctr, 1) "$" Then Effacer True


Next


If Effacer = True Then DoCmd.DeleteObject acTable, Matable.Name 'Supprime la table


Next


fin:


End Sub



Voilà, il ne te reste plus qu'à lancer la fonction MsImportation à l'autoexec de ton prog Access

Comme ça il récupérera automatiquement tes 10 lignes de ton fichier
Excel et créera une table contenant comme champ le nom de ta colonne
(celui que tu as écris à la 1ere ligne) et le nom de ta table que tu as
choisis à l'importation. Et dedans il y aura des fameuses 10 lignes.

Et à chaque lancement de ton programme, la table présente sera
supprimée et une nouvelle table issue du fichier excel sera créée.

Si cette réponse te convient, n'oublies pas de cliquer sur "Réponse acceptée"

@+

TBBUIM
0
rach_zar Messages postés 7 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 23 mai 2005
19 mai 2005 à 17:09
Salut!

Moi je voudrai importer des données de excel vers access

sachant que ma base de données access est déjà créer!!

Je ne veux effacer aucune table!!!

Quelqu'un pourrai t-il m'aider!!!

Merci d'avance
0
rach_zar Messages postés 7 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 23 mai 2005
23 mai 2005 à 15:37

0
Rejoignez-nous