Bonjour à tous
voilà j'utilise la routine que j'ai récupéré chez
http://access.seneque.free.fr/ouverture_document.htm
qui est celle là
Option Compare Database
Option Explicit
Public Const OFN_AllowMultiSelect = &H200
Public Const OFN_CreatePrompt = &H2000
Public Const OFN_EnableHook = &H20
Public Const OFN_EnableTemplate = &H40
Public Const OFN_EnableTemplateHandle = &H80
Public Const OFN_EXPLORER = &H80000
Public Const OFN_ExtensionDifferent = &H400
Public Const OFN_FileMustExist = &H1000
Public Const OFN_HideReadOnly = &H4
Public Const OFN_LongNames = &H200000
Public Const OFN_NoChangeDir = &H8
Public Const OFN_NoDeReferenceLinks = &H100000
Public Const OFN_NoLongNames = &H40000
Public Const OFN_NoNetWorkButton = &H20000
Public Const OFN_NoReadOnlyReturn = &H8000
Public Const OFN_NoTestFileCreate = &H10000
Public Const OFN_NoValiDate = &H100
Public Const OFN_OverWritePrompt = &H2
Public Const OFN_PathMustExist = &H800
Public Const OFN_ReadOnly = &H1
Public Const OFN_ShareAware = &H4000
Public Const OFN_ShareFallThrough = 2
Public Const OFN_ShareNoWarn = 1
Public Const OFN_ShareWarn = 0
Public Const OFN_ShowHelp = &H10
Public Dialogue As OpenFileName
Public strFiltre As String
Public strFile As String
Public strNomFile As String
Public RetVal As Long
Public Type OpenFileName
lStructSize As Long
hwndOwner As Long
Instance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustomFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpRépertoire_initial 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
Public Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OpenFileName) As Long
Public Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" (pOpenfilename As OpenFileName) As Long
Public Function OpenFile(Répertoire_initial As String) As String
With Dialogue
.lStructSize = Len(Dialogue)
.lpstrFilter = strFiltre
.lpstrFile = Space(254)
.nMaxFile = 255
.lpstrFileTitle = Space(254)
.nMaxFileTitle = 255
.lpRépertoire_initial = Répertoire_initial
.lpstrTitle = "Sauvegarde d'un fichier"
.Flags = 6148
End With
RetVal = GetSaveFileName(Dialogue)
If RetVal >= 1 Then
SaveFile = Trim(Dialogue.lpstrFile)
Else
SaveFile = ""
Exit Function
End If
End Function
et si j'ouvre trop de doctuments en multiselect je n'ai rien en retour
je pense que c'est par rapport à la taille de .lpstrFile = space(254)
mais si je passe audessus la procedure ne marche plus
c'est embetant car je voudrais avoir la liste d'un bonne cinquantaine de
fichier d'un coup et je n'arrive pas à trouver le truc
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
cette api est l'api généralement utilisé ( surtout en mono sélection) qui ne gère que 256 caractères et il n'est pas possible de la changer car c'est la procèdure qu'il faut changer (elle est complètement différente )
pour ton info tu peux faire : .lpstrFile = Space(4094) .nMaxFile = 4095 .lpstrFileTitle = Space(4094) .nMaxFileTitle = 4095
lpstrFile est le nom du fichier affiché à l'ouverture de la fenêtre. nMaxFile est la longueur du buffer précédent. lpstrFileTitle contient le nom et extension du fichier sans le chemin. nMaxFileTitle est la longueur du buffer précédent
ce qui ne change rien car non géré. je vais reprendre l'api complète pour voir, je laisserai un message si je trouve quelque chose. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Miguel" a écrit dans le message de news:407fd971$0$21178$
Bonjour à tous voilà j'utilise la routine que j'ai récupéré chez http://access.seneque.free.fr/ouverture_document.htm
et si j'ouvre trop de doctuments en multiselect je n'ai rien en retour je pense que c'est par rapport à la taille de .lpstrFile = space(254) mais si je passe audessus la procedure ne marche plus c'est embetant car je voudrais avoir la liste d'un bonne cinquantaine de fichier d'un coup et je n'arrive pas à trouver le truc
Merci à tous
Miguel
Bonjour.
cette api est l'api généralement utilisé ( surtout en mono sélection) qui ne
gère que 256 caractères et il n'est pas possible de la changer car c'est la
procèdure qu'il faut changer (elle est complètement différente )
pour ton info tu peux faire :
.lpstrFile = Space(4094)
.nMaxFile = 4095
.lpstrFileTitle = Space(4094)
.nMaxFileTitle = 4095
lpstrFile est le nom du fichier affiché à l'ouverture de la fenêtre.
nMaxFile est la longueur du buffer précédent.
lpstrFileTitle contient le nom et extension du fichier sans le chemin.
nMaxFileTitle est la longueur du buffer précédent
ce qui ne change rien car non géré.
je vais reprendre l'api complète pour voir, je laisserai un message si je
trouve quelque chose.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Miguel" <miguel.bonillaPASSPAM@free.fr> a écrit dans le message de
news:407fd971$0$21178$626a14ce@news.free.fr...
Bonjour à tous
voilà j'utilise la routine que j'ai récupéré chez
http://access.seneque.free.fr/ouverture_document.htm
et si j'ouvre trop de doctuments en multiselect je n'ai rien en retour
je pense que c'est par rapport à la taille de .lpstrFile = space(254)
mais si je passe audessus la procedure ne marche plus
c'est embetant car je voudrais avoir la liste d'un bonne cinquantaine de
fichier d'un coup et je n'arrive pas à trouver le truc
cette api est l'api généralement utilisé ( surtout en mono sélection) qui ne gère que 256 caractères et il n'est pas possible de la changer car c'est la procèdure qu'il faut changer (elle est complètement différente )
pour ton info tu peux faire : .lpstrFile = Space(4094) .nMaxFile = 4095 .lpstrFileTitle = Space(4094) .nMaxFileTitle = 4095
lpstrFile est le nom du fichier affiché à l'ouverture de la fenêtre. nMaxFile est la longueur du buffer précédent. lpstrFileTitle contient le nom et extension du fichier sans le chemin. nMaxFileTitle est la longueur du buffer précédent
ce qui ne change rien car non géré. je vais reprendre l'api complète pour voir, je laisserai un message si je trouve quelque chose. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Miguel" a écrit dans le message de news:407fd971$0$21178$
Bonjour à tous voilà j'utilise la routine que j'ai récupéré chez http://access.seneque.free.fr/ouverture_document.htm
et si j'ouvre trop de doctuments en multiselect je n'ai rien en retour je pense que c'est par rapport à la taille de .lpstrFile = space(254) mais si je passe audessus la procedure ne marche plus c'est embetant car je voudrais avoir la liste d'un bonne cinquantaine de fichier d'un coup et je n'arrive pas à trouver le truc
Merci à tous
Miguel
Miguel
Salut Miguel,
Peut être faut t'il t'y prendre autrement.
En récupérant tous les documents qui sont dans un dossier en utilisant une fenetre de choix de dossier avec un Shell.
'Je cree un shell Set sh = New Shell 'Je recupere un dossier Set dossier = sh.BrowseForFolder(Screen.ActiveForm.hwnd, "Choisir un dossier pour récupérer les documents", 0)
Ensuite tu récupère tous les fichiers dudossier que tu met dans une table locale et puis tu affiche un formulaire ou l'utilisateur devra confirmer s'il importe ou pas le fichier.
Ensuite tu applique ce que tu veux comme action sur ces fichiers.
Bon courage. Merci à tous pour vos réponses
Miguel
Salut Miguel,
Peut être faut t'il t'y prendre autrement.
En récupérant tous les documents qui sont dans un dossier en utilisant une fenetre de choix de dossier avec un Shell.
'Je cree un shell
Set sh = New Shell
'Je recupere un dossier
Set dossier = sh.BrowseForFolder(Screen.ActiveForm.hwnd, "Choisir un dossier pour récupérer les documents", 0)
Ensuite tu récupère tous les fichiers dudossier que tu met dans une table locale et puis tu affiche un formulaire ou l'utilisateur devra confirmer s'il importe ou pas le fichier.
Ensuite tu applique ce que tu veux comme action sur ces fichiers.
En récupérant tous les documents qui sont dans un dossier en utilisant une fenetre de choix de dossier avec un Shell.
'Je cree un shell Set sh = New Shell 'Je recupere un dossier Set dossier = sh.BrowseForFolder(Screen.ActiveForm.hwnd, "Choisir un dossier pour récupérer les documents", 0)
Ensuite tu récupère tous les fichiers dudossier que tu met dans une table locale et puis tu affiche un formulaire ou l'utilisateur devra confirmer s'il importe ou pas le fichier.
Ensuite tu applique ce que tu veux comme action sur ces fichiers.
Bon courage. Merci à tous pour vos réponses
Miguel
Raymond [mvp]
Bonsoir Miguel.
Pour l'instant je n'ai pas trouvé de solution mais j'en ai profité pour améliorer l'api actuelle entre la mono-sélection et la multi-sélection et les valeurs retournées. tu trouveras cette nouvelle api sur la page : http://access.seneque.free.fr/ouverture_document.htm -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Miguel" a écrit dans le message de news:407ffb5d$0$21164$
Bonsoir Miguel.
Pour l'instant je n'ai pas trouvé de solution mais j'en ai profité pour
améliorer l'api actuelle entre la mono-sélection et la multi-sélection et
les valeurs retournées.
tu trouveras cette nouvelle api sur la page :
http://access.seneque.free.fr/ouverture_document.htm
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Miguel" <miguel.bonillaPASSPAM@free.fr> a écrit dans le message de
news:407ffb5d$0$21164$626a14ce@news.free.fr...
Pour l'instant je n'ai pas trouvé de solution mais j'en ai profité pour améliorer l'api actuelle entre la mono-sélection et la multi-sélection et les valeurs retournées. tu trouveras cette nouvelle api sur la page : http://access.seneque.free.fr/ouverture_document.htm -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Miguel" a écrit dans le message de news:407ffb5d$0$21164$