Importer et Mise à jour d'access par fichier Excel

Signaler
-
yg_be
Messages postés
10269
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 avril 2020
-
Bonsoir
J'ai encore ce problème peux tu m'aider

j'ai ce code dans un module:

Option Explicit
' ---
' CONSTANTES
' ---


Public Const SOURCE_PATH = "C:\Users\HP\Desktop\"
' CHEMIN DES FICHIERS SOURCES
' ---
'
Public Function SourcePath()
If InStr(1, SOURCE_PATH, ":", vbTextCompare) > 0 Then
SourcePath = SOURCE_PATH
Else
SourcePath = CurrentProject.Path & "\" & SOURCE_PATH
End If
End Function

Et aussi ce code dans un module standard grace à ton aide et cela fonctionne bien


Sub UpdateExcel()
Dim tu As TableUpdater
Dim FichierImp As String
Dim ChemExcelImp As String
Dim CheminDossier As String


' Pour les tests, on vide la table avant d'importer
' les données externes
CurrentDb.Execute "DELETE * FROM [tbl_Productions]"

' Initialisation d'un TableUpdater
CheminDossier = "C:\Users\HP\Desktop"
FichierImp = CheminDossier + "\"
Set tu = New TableUpdater
With tu
' Fichier à importer (chemin, type, version)
.Source = FichierImp & "Productions.xlsx"
.Range = "Productions!"
.SourceType = Excel
.ExcelVersion = acSpreadsheetTypeExcel12

' Informations sur les données
.Headers = True
.Target = "tbl_Productions"
.TempTable = "tbl_Productions TEMP"

' Importation
.Import
End With

Maintenant je voudrais passer par un FileDialog pour donner le choix à mes collègues de leur fichier à importer donc j'ai mis en place un formulaire pour cela

le code:

Private Sub cmdChemDossier_Click()
'---
'SELECTION D'UN DOSSIER
'---
Dim fd As Office.FileDialog
'Créer un objet FileDialog
Set fd = Application.FileDialog(msoFile​DialogFolderPicker)
'Titre de la boîte
fd.Title = "AMIIS PRO-VI: Sélectionnez un Chemin..."
'Texte du bouton
fd.ButtonName = "Sélectionner"

'Type de vue au départ
fd.InitialView = msoFileDialogViewLargeIcons
'Afficher la boîte et traiter le résultat
If fd.Show() Then
Me.ChemExcelImp = fd.SelectedItems(1)
MsgBox "Vous avez sélectionné le chemin :" & vbCrLf & fd.SelectedItems(1), vbInformation, "AMIIS PRO-VI"
End If

Set fd = Nothing

End Sub

Mon problème est que je n'arrive pas a mettre en place les corrections necessaries dans les codes (les modules) pour permettre de récupérer le choix fait dans FileDialog comme ceci:

.source = (le chemin du fichier choisit par l'utilisateur)

dans mon cas s'est C:\Users\HP\Desktop\Production​.xlsx

Aide moi s'il te plait

Merci

1 réponse

Messages postés
10269
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 avril 2020
579
bonjour, peux-tu utiliser les balises de code quand tu partages du code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

une façon de faire serait d'utiliser une variable publique globale pour mémoriser le nom du fichier. ce n'est sans doute pas le plus propre, mais cela devrait fonctionner.