OVH Cloud OVH Cloud

Import fichier avec boite de dialogue

15 réponses
Avatar
FFO
Bonjours à vous
Sous excel si je souhaite importer un fichier texte en utilisant une boite
de dialogue j'utilise une commande simple :
Application.GetOpenFilename
Peut on dans le même esprit (simplicité, rapidité) importer un fichier texte
dans une table au moyen d'une boite de dialogue quant à sa selection en
utilisance la commande DoCmd.TransferText par exemple
Cette commande associé au chemin du fichier fonctionne sans difficulté mais
avec une boite de dialogue pour aller le sélectionner les ennuis commencent

Merci pour vos suggestions

5 réponses

1 2
Avatar
FFO
La cerise sur le gâteau sans abuser de ta gentillesse
Dans un module j'execute 2 fois la procédure pour un fichier ancien et un
fichier nouveau
Est il possible de donner une indication dans la boîte de dialogue pour
indiquer celle que l'on traite (par exemple dans le titre "Recherche d'un
fichier ancien" pour la 1° et Recherche d'un fichier nouveau pour la 2°)

Merci pour cette ultime main secourable

Bonjour FFO,

Un peu de ménage dans mes réponses à l'emporte-pieces ;-)

Conserver la modification de l'énumération et celle de la procédure
ExtendChoose() précédente.

Définir par défaut les paramètres optionnels de la fonction OpenFile
ainsi (adapter le rep stratégique) :

Public Function OpenFile( _
Optional InitialFolder As String = "RepStrategique", _
Optional MultiSelect As Selection = Mono_Sélection, _
Optional ModalWindow As Boolean = True, _
Optional FileType As acOpenFileType = texte, _
Optional KbBufferLength As Long = 4, _
Optional WithPath As Boolean = True _
) As String

(Supprimer la ligne
If InitialFolder = "" Then InitialFolder = CurrentProject.Path)

Dans la procédure d'importation, dans la cas d'une sélection simple:

Dim SelectedFile As String
' Utilisation de rep déclaré en Optionnel
' et visualisation des fichiers textes
SelectedFile = OpenFile()
If Len(SelectedFile) > 0 Then
'MsgBox SelectedFile
'Adapter le nom de la table
DoCmd.TransferText acImportDelim, , _
"TestImport", SelectedFile, True
End If

Pour avoir un rep spécifique et tous les fichiers, toujours dans le cas
d'une sélection simple, mettre:
SelectedFile = OpenFile("LeRep", , , AllFiles)


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonjour,

Pour ne pas trop dénaturé l'API car elle peut te servir pour d'autres
occasions, je ferai ainsi:

Ajout d'un argument NewFile optionnel (de type booléen) dans la fonction
OpenFile, ce qui donne :

Public Function OpenFile( _
Optional InitialFolder As String = "d:", _
Optional MultiSelect As Selection = Mono_Sélection, _
Optional ModalWindow As Boolean = True, _
Optional FileType As acOpenFileType = texte, _
Optional KbBufferLength As Long = 4, _
Optional WithPath As Boolean = True, _
Optional NewFile As Boolean = True _
) As String

et modification de la ligne suivante
.lpstrTitle = "Recherche d'un fichier "
qui se trouve juste avant If MultiSelect = Mono_Sélection Then
en:
.lpstrTitle = "Recherche d'un fichier " _
& IIf(Not NewFile, "déjà existant", "")

Ainsi, par défaut, tu auras le titre de la boite de dialogue défini sur
'Recherche d'un fichier' avec l'instruction
SelectedFile = OpenFile()

et pour titre 'Recherche d'un fichier déjà existant' avec
SelectedFile = OpenFile(, , , , , , False)

Ca convient ?



La cerise sur le gâteau sans abuser de ta gentillesse
Dans un module j'execute 2 fois la procédure pour un fichier ancien et un
fichier nouveau
Est il possible de donner une indication dans la boîte de dialogue pour
indiquer celle que l'on traite (par exemple dans le titre "Recherche d'un
fichier ancien" pour la 1° et Recherche d'un fichier nouveau pour la 2°)

Merci pour cette ultime main secourable


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

Mieux pour ne pas avoir à taper pour toutes ces virgules:

SelectedFile = OpenFile(NewFile:úlse) affichera en titre de la
DialogBox: Recherche d'un fichier existant

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
FFO
Tu es une perle !!!!!!
Avec cette petite retouche de ma conception c'est l'apothéose :
'Recherche du fichier précédent
If Not NewFile Then
.lpstrTitle = "Recherche du fichier ancien "
Else
'Recherche du nouveau fichier
.lpstrTitle = "Recherche du fichier nouveau "
End If
en lieu et place de
.lpstrTitle = "Recherche du fichier nouveau " '& IIf(Not NewFile,
"déjà existant", "")

C'est parfait
Mille fois merci

re,

Mieux pour ne pas avoir à taper pour toutes ces virgules:

SelectedFile = OpenFile(NewFile:úlse) affichera en titre de la
DialogBox: Recherche d'un fichier existant

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
re,
Tu es une perle !!!!!!


Euhhh, c'était une petite bricole ;-)

Avec cette petite retouche de ma conception c'est l'apothéose :
'Recherche du fichier précédent
If Not NewFile Then
.lpstrTitle = "Recherche du fichier ancien "
Else
'Recherche du nouveau fichier
.lpstrTitle = "Recherche du fichier nouveau "
End If



en lieu et place de
.lpstrTitle = "Recherche du fichier nouveau " '& IIf(Not NewFile,
"déjà existant", "")


J'avais mis ça ??? Je crois pas.


C'est parfait
Mille fois merci


J'avais indiqué ne pas vouloir trop dénaturer l'api car
si tu l'utilises ailleurs, tu auras toujours en titre
Recherche du fichier nouveau. Mais c'est toi qui est maitre ...

Bonne continuation.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

1 2