Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pour export choisir le fichier destination

3 réponses
Avatar
Chris50
Bonjour
J'utilise ce code dans un module
J'exporte des données d'une requète vers un fichier texte que je formatte à
ma guise et qui se nomme fiche.txt
j'aimerais savoir si on peut modifier le code pour obtenir une boîte de
dialogue demandant l'endroit où il faut enregistrer le fichier destination en
parcourant les dossiers
voici le code du module

Function export()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFichier As Long

'choisir la fiche
DoCmd.OpenQuery "selection fiche", acNormal, acEdit

'Ouvrir le recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TAMPON")

'Ouvrir le fichier texte en écriture
intFichier = FreeFile
Open "d:\fiche.TXT" For Output As intFichier

'Parcourir les champs et écrire les infos
While Not rst.EOF

Print #intFichier, "NOM"
....


' passer à l'enregistrement suivant
rst.MoveNext
Wend

'on ferme
Close intFichier
rst.Close
Set rst = Nothing
Set db = Nothing
End Function

en fait je voudrais que lorsque l'utilisateur execute la fonction export,
puisse choisir simplement la destination en parcourant les dossiers

Merci

3 réponses

Avatar
rené
bonjour Chris
tu peux regarder le lien suivant
qui donne de bonne information
http://officesystem.access.free.fr/msofiledialog.htm

slts >>>>>>>>>> René



Bonjour
J'utilise ce code dans un module
J'exporte des données d'une requète vers un fichier texte que je formatte à
ma guise et qui se nomme fiche.txt
j'aimerais savoir si on peut modifier le code pour obtenir une boîte de
dialogue demandant l'endroit où il faut enregistrer le fichier destination en
parcourant les dossiers
voici le code du module

Function export()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFichier As Long

'choisir la fiche
DoCmd.OpenQuery "selection fiche", acNormal, acEdit

'Ouvrir le recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TAMPON")

'Ouvrir le fichier texte en écriture
intFichier = FreeFile
Open "d:fiche.TXT" For Output As intFichier

'Parcourir les champs et écrire les infos
While Not rst.EOF

Print #intFichier, "NOM"
....


' passer à l'enregistrement suivant
rst.MoveNext
Wend

'on ferme
Close intFichier
rst.Close
Set rst = Nothing
Set db = Nothing
End Function

en fait je voudrais que lorsque l'utilisateur execute la fonction export,
puisse choisir simplement la destination en parcourant les dossiers

Merci


Avatar
Eric
Bonjour,

Ou encore en utilisant l'API GetSaveFileName()

A copier en tête du module où elle doit être utilisée (le module de la
fonction, je suppose).

Option Compare Database
Option Explicit

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

Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" _
(pOpenfilename As OPENFILENAME) As Long

Dim OFName As OPENFILENAME

Private Function ShowSave(UneChaine As String) As String
' d'après KPD-Team 1998
OFName.lStructSize = Len(OFName)
OFName.hwndOwner = Me.Hwnd
OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" +
Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
' Nom du fichier
OFName.lpstrFile = UneChaine & Space$(254 - Len(UneChaine))
OFName.nMaxFile = 255
OFName.lpstrFileTitle = Space$(254)
OFName.nMaxFileTitle = 255
'Répertoire par défaut
OFName.lpstrInitialDir = "C:"
'Titre de la boite de dialogue
OFName.lpstrTitle = "Enregistrer sous ... "
'Extension par défaut
OFName.lpstrDefExt = ".txt"
'no extra flags
OFName.flags = 0
'Affichage de la boie de dialogue Enregistrer sous ...
If GetSaveFileName(OFName) Then
ShowSave = Trim$(OFName.lpstrFile)
Else
ShowSave = ""
End If
End Function

Tu appeles la fonction ShowSave(...) comme suit dans ta fonction
personnelle:
Function Export()
Dim sFile As String
sFile = ShowSave("Fiche") '<--- passage du nom du fichier
If sFile <> "" Then
' ici ton code de générationdu fichier <---
Dim db As DAO.Database
'...

intFichier = FreeFile
Open sFile For Output As intFichier
' ...
Close
Else
MsgBox "Opération annulée"
End If
End Function

Bonjour
J'utilise ce code dans un module
J'exporte des données d'une requète vers un fichier texte que je formatte à
ma guise et qui se nomme fiche.txt
j'aimerais savoir si on peut modifier le code pour obtenir une boîte de
dialogue demandant l'endroit où il faut enregistrer le fichier destination en
parcourant les dossiers
voici le code du module

Function export()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFichier As Long

'choisir la fiche
DoCmd.OpenQuery "selection fiche", acNormal, acEdit

'Ouvrir le recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TAMPON")

'Ouvrir le fichier texte en écriture
intFichier = FreeFile
Open "d:fiche.TXT" For Output As intFichier

'Parcourir les champs et écrire les infos
While Not rst.EOF

Print #intFichier, "NOM"
....


' passer à l'enregistrement suivant
rst.MoveNext
Wend

'on ferme
Close intFichier
rst.Close
Set rst = Nothing
Set db = Nothing
End Function

en fait je voudrais que lorsque l'utilisateur execute la fonction export,
puisse choisir simplement la destination en parcourant les dossiers

Merci


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

Avatar
Chris50
Merci à tous les 2
j'essaye ça



Bonjour,

Ou encore en utilisant l'API GetSaveFileName()

A copier en tête du module où elle doit être utilisée (le module de la
fonction, je suppose).

Option Compare Database
Option Explicit

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

Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" _
(pOpenfilename As OPENFILENAME) As Long

Dim OFName As OPENFILENAME

Private Function ShowSave(UneChaine As String) As String
' d'après KPD-Team 1998
OFName.lStructSize = Len(OFName)
OFName.hwndOwner = Me.Hwnd
OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" +
Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
' Nom du fichier
OFName.lpstrFile = UneChaine & Space$(254 - Len(UneChaine))
OFName.nMaxFile = 255
OFName.lpstrFileTitle = Space$(254)
OFName.nMaxFileTitle = 255
'Répertoire par défaut
OFName.lpstrInitialDir = "C:"
'Titre de la boite de dialogue
OFName.lpstrTitle = "Enregistrer sous ... "
'Extension par défaut
OFName.lpstrDefExt = ".txt"
'no extra flags
OFName.flags = 0
'Affichage de la boie de dialogue Enregistrer sous ...
If GetSaveFileName(OFName) Then
ShowSave = Trim$(OFName.lpstrFile)
Else
ShowSave = ""
End If
End Function

Tu appeles la fonction ShowSave(...) comme suit dans ta fonction
personnelle:
Function Export()
Dim sFile As String
sFile = ShowSave("Fiche") '<--- passage du nom du fichier
If sFile <> "" Then
' ici ton code de générationdu fichier <---
Dim db As DAO.Database
'...

intFichier = FreeFile
Open sFile For Output As intFichier
' ...
Close
Else
MsgBox "Opération annulée"
End If
End Function

Bonjour
J'utilise ce code dans un module
J'exporte des données d'une requète vers un fichier texte que je formatte à
ma guise et qui se nomme fiche.txt
j'aimerais savoir si on peut modifier le code pour obtenir une boîte de
dialogue demandant l'endroit où il faut enregistrer le fichier destination en
parcourant les dossiers
voici le code du module

Function export()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim intFichier As Long

'choisir la fiche
DoCmd.OpenQuery "selection fiche", acNormal, acEdit

'Ouvrir le recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("TAMPON")

'Ouvrir le fichier texte en écriture
intFichier = FreeFile
Open "d:fiche.TXT" For Output As intFichier

'Parcourir les champs et écrire les infos
While Not rst.EOF

Print #intFichier, "NOM"
....


' passer à l'enregistrement suivant
rst.MoveNext
Wend

'on ferme
Close intFichier
rst.Close
Set rst = Nothing
Set db = Nothing
End Function

en fait je voudrais que lorsque l'utilisateur execute la fonction export,
puisse choisir simplement la destination en parcourant les dossiers

Merci


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