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 28/12/2010, 11h10   #1
Futur Membre du Club
 
guillaume gaget
Inscription : avril 2010
Messages : 130
Détails du profil
Informations personnelles :
Nom : guillaume gaget

Informations forums :
Inscription : avril 2010
Messages : 130
Points : 19
Points : 19
Par défaut liaison excel acces

Bonjour à tous,

Après avoir regarder la FAQ excel et vba, je vous sollicite car je n'ai pas trouver mon bonheur !

J'aimerai tout simplement, importer une feuille excel dans une base access.

Avez vous un exemple de code vba excel à me montrer ?

Merci

ps: je sais faire la méthode, fichier -> données externes -> lier les tables, mais je veux automatiser la liaision

ps1: je veux pourvoir importer ma feuille excel depuis excel

ps2 : on m'a conseiller de me renseigner ici plutot que dans le forum excel
guigui71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 15h04   #2
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Bonjour,

je suis surpris que tu n'aies pas trouvé ça dans la FAQ.

L'aide d'Access sur TransferSpreadSheet t'en dira plus.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 15h12   #3
Futur Membre du Club
 
guillaume gaget
Inscription : avril 2010
Messages : 130
Détails du profil
Informations personnelles :
Nom : guillaume gaget

Informations forums :
Inscription : avril 2010
Messages : 130
Points : 19
Points : 19
j'ai vu ce sujet, mais moi je cherche à piloter access depuis excel, soit créer un programme vba excel qui m'importe ma feuille excel dans access.
guigui71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 15h31   #4
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
J'ai eu une problématique similaire un jour. Je devais importer des données depuis Excel dans Access, mais selon un critère. Je m'en suis sorti en :
- Créant une table liée dans ma db qui pointait vers mon Excel (de l'aide ici)
- Requêtant ma table liée pour ajouter mes enregistrements dans une table de la db. Quelque chose du genre :
Code :
1
2
3
Dim db as Database
Set db = OpenDatabase(lechemin)
db.Execute larequete
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 16h08   #5
Membre régulier
 
Alexis CANET
Étudiant
Inscription : novembre 2009
Messages : 95
Détails du profil
Informations personnelles :
Nom : Alexis CANET
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2009
Messages : 95
Points : 70
Points : 70
Je ne comprend pas pourquoi tu doit faire ton importation depuis excel dans Access, la Logique des chose serai d'importer depuis Access une feuille d'un classeur Excel non? si tu doit mettre à jour ta base Access c'est que ton ficheir Excel contient des données nouvelles non?

Un petit bouton sur ton formulaire qui te permet d'importer un fichier excel (qui te remplit une table)?
Deustalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 09h36   #6
Futur Membre du Club
 
guillaume gaget
Inscription : avril 2010
Messages : 130
Détails du profil
Informations personnelles :
Nom : guillaume gaget

Informations forums :
Inscription : avril 2010
Messages : 130
Points : 19
Points : 19
je dois faire mon importation depuis excel car j'ai déjà créer des programmes sur ma base de données en faite.

c'est pour çà que je souhaite importer ma feuille depuis excel
guigui71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 00h41   #7
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Tu as plusieurs solutions.
La premiere est d'utiliser ce qu'on te dit depuis le début...
Code :
Docmd.transfertSpreadsheet
Mais, pour l'utiliser, puisque tu es dans l'application Excel, tu ne peux l'utiliser ainsi... C'est pourquoi l'aide t'aurait été utile... par exemple, tu aurais vu que DoCmd est un Singleton dans l'application Access.
Sa syntaxe est donc
Code :
1
2
 
UneApplicationAccess.DoCmd.TransfertSpreadSheet
Pour pouvoir l'utiliser, tu dois donc commencer à créer un objet Application Access, depuis ton programme Excel.

Tu pourrais donc commencer ton code par :
Code :
1
2
3
4
5
6
7
8
 
'Définir une application
Dim oAccApp as Object
Set oAccApp = CreateObject("Access.Application")
'Y ouvrir la base de données utile
oAccApp.OpenCurrentDatabase("Mettre le Path ici",False)
'Lancer le TransfertSpeadSheet
oAccApp.Docmd.TransfertSpreadSheet .........
Bien sûr, tu n'oublieras pas de Fermer la base, quitter l'application et réallouer l'espace mémoire en fin de programme, et ce malgré les erreur possibles, avec une belle gestion d'erreurs.


Une autre solution, plus "propre", se serait de fair un Recordset sur ta base de données, et d'y envoyer tes données... à moins que tu aies plein de traitements à faire par la suite ...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h27.


 
 
 
 
Partenaires

Hébergement Web