barry54
Messages postés3Date d'inscriptionlundi 28 février 2011StatutMembreDernière intervention30 mars 2011
-
29 mars 2011 à 15:01
barry54
Messages postés3Date d'inscriptionlundi 28 février 2011StatutMembreDernière intervention30 mars 2011
-
30 mars 2011 à 11:04
Bonjour,
Je souhaite via une interface access importer des fichiers excel pour les integrer à la base.
Les fichiers à importer ont tous la même forme ( nombre de colonne ainsi que le nom de celle ci ), et doivent être enregistré dans une même table à la suite les un des autres.
Je dois donc utiliser une fenêtre d'exploration pour importer le fichier souhaité jusque la tous va bien je récupére le nom et l'emplacement du fichier via la fonction suivante :
Proprietes du bouton :
Private Sub Commande1_Click()
Me!Text1 = LaunchCD(Me)
End Sub
Dans un module :
Option Compare Database
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Function LaunchCD(strform As Form) As String
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
OpenFile.hwndOwner = strform.Hwnd
sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _
"JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0)
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = "C:"
OpenFile.lpstrTitle = "Select a file using the Common Dialog DLL"
OpenFile.flags = 0
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
MsgBox "A file was not selected!", vbInformation, _
"Select a file using the Common Dialog DLL"
Else
LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1))
End If
End Function
Je souhaite ensuite utiliser le contenu de la zone de texte dans un DoCmd.TransferSpreadsheet comme ceci :
Mon problème je récupére bien le chemin du fichier désiré mais à la place du nom de fichier j'ai Text1 exemple : C:\Documents and Settings\Bureau\Text1.WK3 au lieu de C:\Documents and Settings\Bureau\test.xls
barry54
Messages postés3Date d'inscriptionlundi 28 février 2011StatutMembreDernière intervention30 mars 2011 30 mars 2011 à 11:04
Bjr,
Oui je m'en suis rendu compte après coup effectivement ca marche comme ca merci ^^
J'ai maintenant le probleme dans le sens inverse quand je veux transférer ma base access vers un fichier excel j'utilise toujours la même fonction pour récupérer le fichier de destination cette fois mais lorsque que j'utilise cette ligne :
BdD étant la table que je veux envoyé vers Text2 le nom de fichier de destination récupéré via ma fonction launchCD.
Lorsque que j'execute ceci je n'ai pas de message d'erreur mais lorsque que j'ouvre le fichier de destination il n'y a rien à l'intérieur.