IMPORTATION DE DONNÉES EXCEL SOUS ACCESS

Signaler
Messages postés
13
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
21 février 2002
-
Messages postés
2
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
26 avril 2013
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2560-importation-de-donnees-excel-sous-access

Messages postés
2
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
26 avril 2013

merci pour ce code j lé utilisé mais le problème que ma table est toujours vide après le transféré de l'EXCEL.
Quoi faire? voici mon code:

Option Compare Database

Private Sub impotation_du_fichier_Click()

Dim PathFic As String
Dim NomFic As String
Dim NomFicXLS As String
Dim NomTable As String

Dim code_article As Integer
Dim libelle_article As String
Dim prix_vente As Integer
Dim prix_achat As Integer
Dim stock As Integer

Dim i As Integer
Dim sql As String
Set dbs = CurrentDb
Set ClasseurXLS = CreateObject("Excel.application")

'Initialisation Nom du fichier à importer
If (Text1.Value <> "") Then
NomFic = Text1
NomFic = NomFic & ".xlsx"
'NomFic = "tablesStock.xlsx"
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Initialisation Emplacement du fichier à importer

If (Text2.Value <> "") Then
PathFic = Text2
Else
réponse = MsgBox("Emplacement du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Initialisation Nom de la table d'importation

If (Text3.Value <> "") Then
NomTable = Text3
Else
réponse = MsgBox("Nom de la table d'importation manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If

'Ouverture du classeur d'importation

ClasseurXLS.Workbooks.Open PathFic & NomFic

'Creation d'une table d'importation

sql = "CREATE TABLE table_provisoire(icodearticle integer, ilibellearticle string, iprixv integer, iprixacht integer, istock integer)"
dbs.Execute sql
i = 2
Do While ClasseurXLS.Cells(i, 1) <> ""

'Recuperation des données lignes par lignes

code_article = ClasseurXLS.Cells(i, 1)
libelle_article = ClasseurXLS.Cells(i, 2)
prix_vente = ClasseurXLS.Cells(i, 3)
prix_achat = ClasseurXLS.Cells(i, 4)
stock = ClasseurXLS.Cells(i, 5)


'Insertion des données dans la table

sql = "INSERT INTO TableS (code_article, libelle_article, prix_vente, prix_achat, stock) values ('" & Vcodearticle & "','" & VLibelle & "', '" & VprixVente & "' , '" & Vprixacht & "', '" & Vstock & "');"
dbs.Execute sql
i = i + 1
Loop

'Fermeture du classeur d'importation

ClasseurXLS.Workbooks.Close
MsgBox ("Importation des données effectuée")

End Sub
Messages postés
9
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
18 juin 2011

bonnjour moi j'ai justement pas envie qu'il yai une creation de table sous access pour le faire
j'ai crée tte ma base de donnée avec les clé primaire et les relation
et dans l'une des table je veux importer une 3 colonne de excel vers le 3 colonne de meme champ sous access
avec une mise a jour des donnée sous access a chaque fois que cela se fai sous excel
Messages postés
59
Date d'inscription
mardi 12 septembre 2006
Statut
Membre
Dernière intervention
21 août 2009
2
Ce code fonctionne trés bien, il est flexible et permet de faire pas mal de choses (pas besoin de créer une table pour l'importation depuis Excel par exemple), de sélectionner uniquement les colonnes utiles, le problème étant que si vous avez besoin d'un fichier Excel utilisant plusieurs onglets, il n'est pas possible de parcourir les différents onglets et il faut donc splitter le fichier en plusieurs morceaux.
Messages postés
1
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
8 mai 2008

Merci bcp! le code m'es très utile pour mon travail!
Afficher les 21 commentaires