filedialog et ouverture de fichiers

Le
dadpub
Bonjour,
Je me suis inspiré de ce code trouvé sur le site de Raymond :

http://officesystem.access.free.fr/msofiledialog.htm

A partir de là, je voudrais pouvoir ouvrir n'importe quel fichier se
trouvant dans le répertoire, que ce soit un document Word, un tableur Excel,
voire une image JPEG
Mais j'ai pas trouvé le truc !
Pouvez-vous m'aider ?
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ze Titi
Le #6225721
Bonjour dadpub

Toujours sur le site de Raymond:
http://officesystem.access.free.fr/apiopenfileextend.htm
qui te permet d'ouvrir n'importe quel fichier en fonction de son
extension.

Dans ton message
Bonjour,
Je me suis inspiré de ce code trouvé sur le site de Raymond :

http://officesystem.access.free.fr/msofiledialog.htm

A partir de là, je voudrais pouvoir ouvrir n'importe quel fichier se trouvant
dans le répertoire, que ce soit un document Word, un tableur Excel, voire une
image JPEG ...
Mais j'ai pas trouvé le truc !
Pouvez-vous m'aider ?
Merci


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

dadpub
Le #6225541
"ze Titi"
Bonjour dadpub

Toujours sur le site de Raymond:
http://officesystem.access.free.fr/apiopenfileextend.htm
qui te permet d'ouvrir n'importe quel fichier en fonction de son
extension.


Merci, mais j'ai rien compris !
Ou dois-je mettre l'appel de la fonction ?
Comment et ou inclure ce code par rapport à l'autre ?
Pouvez-vous m'éclairer un peu ?
Merci.

ze Titi
Le #6225501
Hello dadpub !

Colle le code de la page dans un module. L'appel de la fonction se fait
comme décrit sur cette même page. Tu lui passes en paramètre ce que tu
as récupéré avec l'autre fonction.

En ce jour mémorable du mercredi 04/04/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
"ze Titi"
Bonjour dadpub

Toujours sur le site de Raymond:
http://officesystem.access.free.fr/apiopenfileextend.htm
qui te permet d'ouvrir n'importe quel fichier en fonction de son extension.


Merci, mais j'ai rien compris !
Ou dois-je mettre l'appel de la fonction ?
Comment et ou inclure ce code par rapport à l'autre ?
Pouvez-vous m'éclairer un peu ?
Merci.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info


dadpub
Le #6225301
Bonsoir,
ça commence à prendre forme, merci.
juste un souci sur ce bout de code :
OpenFileExtend (MonString , Maximized , OpExecute)
on me dit Attendu : Donc j'en sui resté à OpenFileExtend (MonString)
et ça marche tant bien que mal !
Merci.

"ze Titi"
Hello dadpub !

Colle le code de la page dans un module. L'appel de la fonction se fait
comme décrit sur cette même page. Tu lui passes en paramètre ce que tu as
récupéré avec l'autre fonction.

En ce jour mémorable du mercredi 04/04/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
"ze Titi" news:
Bonjour dadpub

Toujours sur le site de Raymond:
http://officesystem.access.free.fr/apiopenfileextend.htm
qui te permet d'ouvrir n'importe quel fichier en fonction de son
extension.


Merci, mais j'ai rien compris !
Ou dois-je mettre l'appel de la fonction ?
Comment et ou inclure ce code par rapport à l'autre ?
Pouvez-vous m'éclairer un peu ?
Merci.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






Raymond [mvp]
Le #6225281
Bonsoir.

Je t'apporte quelques précisions concernant cette fonction qui fonctionne
très bien si on respecte l'esprit et la lettre.
d'abord c'est une fonction qui retourne obligatoirement une valeur et cette
valeur doit être testée sinon le déroulement de la procédure est remis en
cause.
La variable Réponse contient l'état de l'exécution du fichier.
Si l'exécution a été réalisée correctement, la réponse est True.
Si l'exécution n'a pas pu être réalisée correctement, la réponse est False,
suivie de la cause de la non exécution.
si access indique l'erreur de compilation Attendu : =, ceci veut dire que tu
n'as pas indiqué une variable pour la valeur en retour ou si tu n'indiques
pas de variable tu as placé les paranthèses.
tu as le choix , par exemple:
Réponse = OpenfileExtend("classeur1.xls", Maximized, OpExecute)
ou
OpenfileExtend "classeur1.xls", Maximized, OpExecute

de toute façon, il faut respecter l'exemple donné ci-dessous pour ne pas
avoir de problème.
Private Sub Commande0_Click()
Dim Réponse As Variant
Réponse = OpenfileExtend("classeur1.xls", Maximized, OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
End Sub

Ceci étant, chacun fait ce qu'il veut.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"dadpub"
| Bonsoir,
| ça commence à prendre forme, merci.
| juste un souci sur ce bout de code :
| OpenFileExtend (MonString , Maximized , OpExecute)
| on me dit Attendu : | Donc j'en sui resté à OpenFileExtend (MonString)
| et ça marche tant bien que mal !
| Merci.
dadpub
Le #6225161
Bonjour,
Le mieux est de montrer le code que j'ai glané sur votre site :
'===================Début Code========================= Option Compare Database
Option Explicit

Private Declare Function ShellExec Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String,
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As
Long) As Long

Public Enum TypeOpen
Hide = 0
Normal = 1
Minimized = 2
Maximized = 3
Restore = 9
End Enum

Public Enum OP
OpExecute = 1
OpPrint = 2
End Enum

Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&

Function OpenFileExtend(FileName As String, Optional Window As TypeOpen =
Minimized, Optional Operation As OP = OpExecute) As Variant

Dim lRet As Long
Dim varTaskID As Variant
Dim stRet As String
lRet = ShellExec(hWndAccessApp, IIf(Operation = OpPrint, "print",
"open"), FileName, vbNullString, vbNullString, Window)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL "
& FileName, 1)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Erreur: Pas assez de mémoire pour exécuter"
Case ERROR_FILE_NOT_FOUND:
stRet = "Erreur : FileName non trouvé"
Case ERROR_PATH_NOT_FOUND:
stRet = "Erreur : chemin non trouvé"
Case ERROR_BAD_FORMAT:
stRet = "Erreur : Type de FileName inconnu"
Case Else:
End Select
End If
OpenFileExtend = lRet & IIf(stRet = "", vbNullString, ", " & stRet)
End Function

Function ChoixDoc() As String
DoEvents
Dim Dialogue As FileDialog
Dim MonItem As String

Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Ouvrir ce fichier"
.InitialFileName = "C:bib" & Forms!fprincipal!NomP &
Forms!fprincipal!Prenom & Forms!fprincipal!CODENP & "*.*"
.Filters.Clear
.Filters.Add "Tous les types", "*.*"
.Filters.Add "Documents au format Rich Text", "*.rtf"
.Filters.Add "Documents Word", "*.doc"
.InitialView = msoFileDialogViewList
.Title = "Choisissez votre document..."
If .Show Then
MonItem = Dialogue.SelectedItems.Item(1)
'==================début de
BUG============================================== OpenFileExtend (MonItem,Maximized,OpExecute) ' ça
marche avec OpenFileExtend (MonItem)
'===================fin de
BUG=============================================== Dim Réponse As Variant
Réponse = OpenFileExtend(MonItem, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox " Y'a cette erreur : " & Réponse, vbCritical, "Module
ChoixDoc"
End If

End If
End With
End Function
"=============Fin Code================================= @ +
Merci.
Raymond [mvp]
Le #6225091
Bonjour.

Ce qui veut dire que la valeur récupérée dans MonItem comporte une erreur,
telle qu'une , ou un ; etc....
vérifier les valeurs de MonItem lorsque tu entres dans la procédure.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"dadpub" %23s6%
| Bonjour,
| Le mieux est de montrer le code que j'ai glané sur votre site :
| '===================Début Code========================= | Option Compare Database
| Option Explicit
|
| Private Declare Function ShellExec Lib "shell32.dll" Alias "ShellExecuteA"
| (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String,
| ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd
As
| Long) As Long
|
| Public Enum TypeOpen
| Hide = 0
| Normal = 1
| Minimized = 2
| Maximized = 3
| Restore = 9
| End Enum
|
| Public Enum OP
| OpExecute = 1
| OpPrint = 2
| End Enum
|
| Private Const ERROR_SUCCESS = 32&
| Private Const ERROR_NO_ASSOC = 31&
| Private Const ERROR_OUT_OF_MEM = 0&
| Private Const ERROR_FILE_NOT_FOUND = 2&
| Private Const ERROR_PATH_NOT_FOUND = 3&
| Private Const ERROR_BAD_FORMAT = 11&
|
| Function OpenFileExtend(FileName As String, Optional Window As TypeOpen | Minimized, Optional Operation As OP = OpExecute) As Variant
|
| Dim lRet As Long
| Dim varTaskID As Variant
| Dim stRet As String
| lRet = ShellExec(hWndAccessApp, IIf(Operation = OpPrint, "print",
| "open"), FileName, vbNullString, vbNullString, Window)
| If lRet > ERROR_SUCCESS Then
| stRet = vbNullString
| lRet = -1
| Else
| Select Case lRet
| Case ERROR_NO_ASSOC:
| varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL "
| & FileName, 1)
| lRet = (varTaskID <> 0)
| Case ERROR_OUT_OF_MEM:
| stRet = "Erreur: Pas assez de mémoire pour exécuter"
| Case ERROR_FILE_NOT_FOUND:
| stRet = "Erreur : FileName non trouvé"
| Case ERROR_PATH_NOT_FOUND:
| stRet = "Erreur : chemin non trouvé"
| Case ERROR_BAD_FORMAT:
| stRet = "Erreur : Type de FileName inconnu"
| Case Else:
| End Select
| End If
| OpenFileExtend = lRet & IIf(stRet = "", vbNullString, ", " & stRet)
| End Function
|
| Function ChoixDoc() As String
| DoEvents
| Dim Dialogue As FileDialog
| Dim MonItem As String
|
| Set Dialogue = FileDialog(msoFileDialogOpen)
| With Dialogue
| .AllowMultiSelect = False
| .ButtonName = "Ouvrir ce fichier"
| .InitialFileName = "C:bib" & Forms!fprincipal!NomP &
| Forms!fprincipal!Prenom & Forms!fprincipal!CODENP & "*.*"
| .Filters.Clear
| .Filters.Add "Tous les types", "*.*"
| .Filters.Add "Documents au format Rich Text", "*.rtf"
| .Filters.Add "Documents Word", "*.doc"
| .InitialView = msoFileDialogViewList
| .Title = "Choisissez votre document..."
| If .Show Then
| MonItem = Dialogue.SelectedItems.Item(1)
| '==================début de
| BUG============================================== | OpenFileExtend (MonItem,Maximized,OpExecute) ' ça
| marche avec OpenFileExtend (MonItem)
| '===================fin de
| BUG=============================================== | Dim Réponse As Variant
| Réponse = OpenFileExtend(MonItem, Maximized, OpExecute)
| If Not Réponse = True Then
| MsgBox " Y'a cette erreur : " & Réponse, vbCritical, "Module
| ChoixDoc"
| End If
|
| End If
| End With
| End Function
| "=============Fin Code================================= | @ +
| Merci.
|
|
ze Titi
Le #6225081
Hello Raymond !

Ou alors tout simplement, comme tu le précisais dans ton poste
précédent, retirer les parenthèses autour des paramètres puisqu'il
utilise la fonction sans test de retour. Mais peut-être me
fourvois-je...

En ce jour mémorable du jeudi 05/04/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour.

Ce qui veut dire que la valeur récupérée dans MonItem comporte une erreur,
telle qu'une , ou un ; etc....
vérifier les valeurs de MonItem lorsque tu entres dans la procédure.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"dadpub" %23s6%
Bonjour,
Le mieux est de montrer le code que j'ai glané sur votre site :
'===================Début Code========================= >> Option Compare Database
Option Explicit

Private Declare Function ShellExec Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String,
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd
As Long) As Long

Public Enum TypeOpen
Hide = 0
Normal = 1
Minimized = 2
Maximized = 3
Restore = 9
End Enum

Public Enum OP
OpExecute = 1
OpPrint = 2
End Enum

Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&

Function OpenFileExtend(FileName As String, Optional Window As TypeOpen >> Minimized, Optional Operation As OP = OpExecute) As Variant

Dim lRet As Long
Dim varTaskID As Variant
Dim stRet As String
lRet = ShellExec(hWndAccessApp, IIf(Operation = OpPrint, "print",
"open"), FileName, vbNullString, vbNullString, Window)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL "
& FileName, 1)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Erreur: Pas assez de mémoire pour exécuter"
Case ERROR_FILE_NOT_FOUND:
stRet = "Erreur : FileName non trouvé"
Case ERROR_PATH_NOT_FOUND:
stRet = "Erreur : chemin non trouvé"
Case ERROR_BAD_FORMAT:
stRet = "Erreur : Type de FileName inconnu"
Case Else:
End Select
End If
OpenFileExtend = lRet & IIf(stRet = "", vbNullString, ", " & stRet)
End Function

Function ChoixDoc() As String
DoEvents
Dim Dialogue As FileDialog
Dim MonItem As String

Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Ouvrir ce fichier"
.InitialFileName = "C:bib" & Forms!fprincipal!NomP &
Forms!fprincipal!Prenom & Forms!fprincipal!CODENP & "*.*"
.Filters.Clear
.Filters.Add "Tous les types", "*.*"
.Filters.Add "Documents au format Rich Text", "*.rtf"
.Filters.Add "Documents Word", "*.doc"
.InitialView = msoFileDialogViewList
.Title = "Choisissez votre document..."
If .Show Then
MonItem = Dialogue.SelectedItems.Item(1)
'==================début de
BUG============================================== >> OpenFileExtend (MonItem,Maximized,OpExecute) ' ça
marche avec OpenFileExtend (MonItem)
'===================fin de
BUG=============================================== >> Dim Réponse As Variant
Réponse = OpenFileExtend(MonItem, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox " Y'a cette erreur : " & Réponse, vbCritical, "Module
ChoixDoc"
End If

End If
End With
End Function
"=============Fin Code================================= >> @ +
Merci.





--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info


Raymond [mvp]
Le #6225051
Bonjour.

Pour moi c'était déjà fait et corrigé, car ça provoque une erreur de
compilation et on ne peut pas tester avec une telle erreur.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"ze Titi"
| Hello Raymond !
|
| Ou alors tout simplement, comme tu le précisais dans ton poste
| précédent, retirer les parenthèses autour des paramètres puisqu'il
| utilise la fonction sans test de retour. Mais peut-être me
| fourvois-je...
|
| En ce jour mémorable du jeudi 05/04/2007, tu as entrepris la lourde
| tâche de taper sur ton clavier :
| > Bonjour.
| >
| > Ce qui veut dire que la valeur récupérée dans MonItem comporte une
erreur,
| > telle qu'une , ou un ; etc....
| > vérifier les valeurs de MonItem lorsque tu entres dans la procédure.
| >
| > --
| > @+
| > Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > Pour débuter sur le forum: http://www.mpfa.info/
| > Pour les amoureux de l'Ardèche et de Joyeuse:
| > http://cppj.free.fr/
| >
| >
| > "dadpub" | > %23s6%
| >> Bonjour,
| >> Le mieux est de montrer le code que j'ai glané sur votre site :
| >> '===================Début Code========================= | >> Option Compare Database
| >> Option Explicit
| >>
| >> Private Declare Function ShellExec Lib "shell32.dll" Alias
"ShellExecuteA"
| >> (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As
String,
| >> ByVal lpParameters As String, ByVal lpDirectory As String, ByVal
nShowCmd
| >> As Long) As Long
| >>
| >> Public Enum TypeOpen
| >> Hide = 0
| >> Normal = 1
| >> Minimized = 2
| >> Maximized = 3
| >> Restore = 9
| >> End Enum
| >>
| >> Public Enum OP
| >> OpExecute = 1
| >> OpPrint = 2
| >> End Enum
| >>
| >> Private Const ERROR_SUCCESS = 32&
| >> Private Const ERROR_NO_ASSOC = 31&
| >> Private Const ERROR_OUT_OF_MEM = 0&
| >> Private Const ERROR_FILE_NOT_FOUND = 2&
| >> Private Const ERROR_PATH_NOT_FOUND = 3&
| >> Private Const ERROR_BAD_FORMAT = 11&
| >>
| >> Function OpenFileExtend(FileName As String, Optional Window As TypeOpen
| >> Minimized, Optional Operation As OP = OpExecute) As Variant
| >>
| >> Dim lRet As Long
| >> Dim varTaskID As Variant
| >> Dim stRet As String
| >> lRet = ShellExec(hWndAccessApp, IIf(Operation = OpPrint, "print",
| >> "open"), FileName, vbNullString, vbNullString, Window)
| >> If lRet > ERROR_SUCCESS Then
| >> stRet = vbNullString
| >> lRet = -1
| >> Else
| >> Select Case lRet
| >> Case ERROR_NO_ASSOC:
| >> varTaskID = Shell("rundll32.exe
shell32.dll,OpenAs_RunDLL "
| >> & FileName, 1)
| >> lRet = (varTaskID <> 0)
| >> Case ERROR_OUT_OF_MEM:
| >> stRet = "Erreur: Pas assez de mémoire pour exécuter"
| >> Case ERROR_FILE_NOT_FOUND:
| >> stRet = "Erreur : FileName non trouvé"
| >> Case ERROR_PATH_NOT_FOUND:
| >> stRet = "Erreur : chemin non trouvé"
| >> Case ERROR_BAD_FORMAT:
| >> stRet = "Erreur : Type de FileName inconnu"
| >> Case Else:
| >> End Select
| >> End If
| >> OpenFileExtend = lRet & IIf(stRet = "", vbNullString, ", " & stRet)
| >> End Function
| >>
| >> Function ChoixDoc() As String
| >> DoEvents
| >> Dim Dialogue As FileDialog
| >> Dim MonItem As String
| >>
| >> Set Dialogue = FileDialog(msoFileDialogOpen)
| >> With Dialogue
| >> .AllowMultiSelect = False
| >> .ButtonName = "Ouvrir ce fichier"
| >> .InitialFileName = "C:bib" & Forms!fprincipal!NomP &
| >> Forms!fprincipal!Prenom & Forms!fprincipal!CODENP & "*.*"
| >> .Filters.Clear
| >> .Filters.Add "Tous les types", "*.*"
| >> .Filters.Add "Documents au format Rich Text", "*.rtf"
| >> .Filters.Add "Documents Word", "*.doc"
| >> .InitialView = msoFileDialogViewList
| >> .Title = "Choisissez votre document..."
| >> If .Show Then
| >> MonItem = Dialogue.SelectedItems.Item(1)
| >> '==================début de
| >> BUG============================================== | >> OpenFileExtend (MonItem,Maximized,OpExecute) ' ça
| >> marche avec OpenFileExtend (MonItem)
| >> '===================fin de
| >> BUG=============================================== | >> Dim Réponse As Variant
| >> Réponse = OpenFileExtend(MonItem, Maximized, OpExecute)
| >> If Not Réponse = True Then
| >> MsgBox " Y'a cette erreur : " & Réponse, vbCritical, "Module
| >> ChoixDoc"
| >> End If
| >>
| >> End If
| >> End With
| >> End Function
| >> "=============Fin Code================================= | >> @ +
| >> Merci.
| >>
| >>
|
| --
| Cordialement,
| Ze Titi
|
| Tout pour réussir avec Access :
| http://www.mpfa.info
|
|
dadpub
Le #6225001
Hello !
La variable MonItem ne comporte pas d'erreur...
J'ai enlevé les parenthèses et tout a l'air de fonctionner.
Merci.
(Je regrette de ne pas tout avoir compris, mais à mon age, c'est trop tard
!)
@ +


"ze Titi"
Hello Raymond !

Ou alors tout simplement, comme tu le précisais dans ton poste précédent,
retirer les parenthèses autour des paramètres puisqu'il utilise la
fonction sans test de retour. Mais peut-être me fourvois-je...

En ce jour mémorable du jeudi 05/04/2007, tu as entrepris la lourde tâche
de taper sur ton clavier :
Bonjour.

Ce qui veut dire que la valeur récupérée dans MonItem comporte une
erreur, telle qu'une , ou un ; etc....
vérifier les valeurs de MonItem lorsque tu entres dans la procédure.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"dadpub" %23s6%
Bonjour,
Le mieux est de montrer le code que j'ai glané sur votre site :
'===================Début Code========================= >>> Option Compare Database
Option Explicit

Private Declare Function ShellExec Lib "shell32.dll" Alias
"ShellExecuteA"
(ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As
String,
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal
nShowCmd As Long) As Long

Public Enum TypeOpen
Hide = 0
Normal = 1
Minimized = 2
Maximized = 3
Restore = 9
End Enum

Public Enum OP
OpExecute = 1
OpPrint = 2
End Enum

Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&

Function OpenFileExtend(FileName As String, Optional Window As TypeOpen
Minimized, Optional Operation As OP = OpExecute) As Variant




Dim lRet As Long
Dim varTaskID As Variant
Dim stRet As String
lRet = ShellExec(hWndAccessApp, IIf(Operation = OpPrint, "print",
"open"), FileName, vbNullString, vbNullString, Window)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL
"
& FileName, 1)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Erreur: Pas assez de mémoire pour exécuter"
Case ERROR_FILE_NOT_FOUND:
stRet = "Erreur : FileName non trouvé"
Case ERROR_PATH_NOT_FOUND:
stRet = "Erreur : chemin non trouvé"
Case ERROR_BAD_FORMAT:
stRet = "Erreur : Type de FileName inconnu"
Case Else:
End Select
End If
OpenFileExtend = lRet & IIf(stRet = "", vbNullString, ", " & stRet)
End Function

Function ChoixDoc() As String
DoEvents
Dim Dialogue As FileDialog
Dim MonItem As String

Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = False
.ButtonName = "Ouvrir ce fichier"
.InitialFileName = "C:bib" & Forms!fprincipal!NomP &
Forms!fprincipal!Prenom & Forms!fprincipal!CODENP & "*.*"
.Filters.Clear
.Filters.Add "Tous les types", "*.*"
.Filters.Add "Documents au format Rich Text", "*.rtf"
.Filters.Add "Documents Word", "*.doc"
.InitialView = msoFileDialogViewList
.Title = "Choisissez votre document..."
If .Show Then
MonItem = Dialogue.SelectedItems.Item(1)
'==================début de
BUG============================================== >>> OpenFileExtend (MonItem,Maximized,OpExecute) ' ça
marche avec OpenFileExtend (MonItem)
'===================fin de
BUG=============================================== >>> Dim Réponse As Variant
Réponse = OpenFileExtend(MonItem, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox " Y'a cette erreur : " & Réponse, vbCritical, "Module
ChoixDoc"
End If

End If
End With
End Function
"=============Fin Code================================= >>> @ +
Merci.





--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info









Publicité
Poster une réponse
Anonyme