OVH Cloud OVH Cloud

fhandlefile

2 réponses
Avatar
Cestmoi
A tous, bonjour,
Je suis novice dans Access et voilà mon problème:
Je n'ai fait que copier la fonctions telle quelle.

Voici ce que j'ai dans mon Module 1:
Option Compare Database

'************ Code Start **********
Private Declare Function apiShellExecute 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

'***App Window Constants***
Public Const WIN_NORMAL = 1 'Open Normal
Public Const WIN_MAX = 3 'Open Maximized
Public Const WIN_MIN = 2 'Open Minimized

'***Error Codes***
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&

'***************Exemples d'utilisation***********************
'Ouvrir un répertoire: ?fHandleFile("C:\TEMP\",WIN_NORMAL)
'Pour envoyer un courriel:
?fHandleFile("mailto:dash10@hotmail.com",WIN_NORMAL)
'Ouvrir selon un URL: ?fHandleFile("http://home.att.net/~dashish",
WIN_NORMAL)
'Traiter les extensions inconnue (call Open With Dialog):
' ?fHandleFile("C:\TEMP\TestThis",Win_Normal)
'Démarrer Access:
' ?fHandleFile("I:\mdbs\CodeNStuff.mdb",
Win_NORMAL)
'****************************************************

Function fHandleFile(stFile As String, lShowHow As Long)
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
'First try ShellExecute
lRet = apiShellExecute(hWndAccessApp, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)

If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
'Try the OpenWith dialog
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL "
_
& stFile, WIN_NORMAL)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Error: Out of Memory/Resources. Couldn't Execute!"
Case ERROR_FILE_NOT_FOUND:
stRet = "Error: File not found. Couldn't Execute!"
Case ERROR_PATH_NOT_FOUND:
stRet = "Error: Path not found. Couldn't Execute!"
Case ERROR_BAD_FORMAT:
stRet = "Error: Bad File Format. Couldn't Execute!"
Case Else:
End Select
End If
fHandleFile = lRet & _
IIf(stRet = "", vbNullString, ", " & stRet)
End Function
'************ Code End **********

Voici le code dans mon formulaire

Private Sub Commande6_Click()
On Error GoTo Err_Commande6_Click

Dim oApp As Word.Application

Set oApp = CreateObject("Word.Application")
oApp.Visible = True

Print fHandleFile("G:\CDS\fiches cursus", WIN_NORMAL)

Exit_Commande6_Click:
Exit Sub

Err_Commande6_Click:
MsgBox Err.Description
Resume Exit_Commande6_Click

End Sub


Le Print se met devant le code" fHandleFile("G:\CDS\fiches cursus",
WIN_NORMAL)" sans que je ne lui demande.

Mon problème est qu' il ne veut plu aller dans le répertoire il me dit
alors:

Propriété ou méthone non gérée par cet objet.

Peut-on m'aider svp ?

Bien à vous.

2 réponses

Avatar
Bonjour,

Vérifie dans le menu outils > Références d'un moduble vba si celle de word est cochée.

Remplace Print par Call

ps : qu'est-ce que tu comptes faire avec ton fhandlefile ?

G:CDSfiches cursus est un dossier et cette fonction n'a pas l'air d'apporter beaucoup de
choses de plus dans ton cas que la commande shell directement...


--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------

"Cestmoi" a écrit dans le message de news:

|
| A tous, bonjour,
| Je suis novice dans Access et voilà mon problème:
| Je n'ai fait que copier la fonctions telle quelle.
|
| Voici ce que j'ai dans mon Module 1:
| Option Compare Database
|
| '************ Code Start **********
| Private Declare Function apiShellExecute 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
|
| '***App Window Constants***
| Public Const WIN_NORMAL = 1 'Open Normal
| Public Const WIN_MAX = 3 'Open Maximized
| Public Const WIN_MIN = 2 'Open Minimized
|
| '***Error Codes***
| 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&
|
| '***************Exemples d'utilisation***********************
| 'Ouvrir un répertoire: ?fHandleFile("C:TEMP",WIN_NORMAL)
| 'Pour envoyer un courriel:
| ?fHandleFile("mailto:",WIN_NORMAL)
| 'Ouvrir selon un URL: ?fHandleFile("http://home.att.net/~dashish",
| WIN_NORMAL)
| 'Traiter les extensions inconnue (call Open With Dialog):
| ' ?fHandleFile("C:TEMPTestThis",Win_Normal)
| 'Démarrer Access:
| ' ?fHandleFile("I:mdbsCodeNStuff.mdb",
| Win_NORMAL)
| '****************************************************
|
| Function fHandleFile(stFile As String, lShowHow As Long)
| Dim lRet As Long, varTaskID As Variant
| Dim stRet As String
| 'First try ShellExecute
| lRet = apiShellExecute(hWndAccessApp, vbNullString, _
| stFile, vbNullString, vbNullString, lShowHow)
|
| If lRet > ERROR_SUCCESS Then
| stRet = vbNullString
| lRet = -1
| Else
| Select Case lRet
| Case ERROR_NO_ASSOC:
| 'Try the OpenWith dialog
| varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL "
| _
| & stFile, WIN_NORMAL)
| lRet = (varTaskID <> 0)
| Case ERROR_OUT_OF_MEM:
| stRet = "Error: Out of Memory/Resources. Couldn't Execute!"
| Case ERROR_FILE_NOT_FOUND:
| stRet = "Error: File not found. Couldn't Execute!"
| Case ERROR_PATH_NOT_FOUND:
| stRet = "Error: Path not found. Couldn't Execute!"
| Case ERROR_BAD_FORMAT:
| stRet = "Error: Bad File Format. Couldn't Execute!"
| Case Else:
| End Select
| End If
| fHandleFile = lRet & _
| IIf(stRet = "", vbNullString, ", " & stRet)
| End Function
| '************ Code End **********
|
| Voici le code dans mon formulaire
|
| Private Sub Commande6_Click()
| On Error GoTo Err_Commande6_Click
|
| Dim oApp As Word.Application
|
| Set oApp = CreateObject("Word.Application")
| oApp.Visible = True
|
| Print fHandleFile("G:CDSfiches cursus", WIN_NORMAL)
|
| Exit_Commande6_Click:
| Exit Sub
|
| Err_Commande6_Click:
| MsgBox Err.Description
| Resume Exit_Commande6_Click
|
| End Sub
|
|
| Le Print se met devant le code" fHandleFile("G:CDSfiches cursus",
| WIN_NORMAL)" sans que je ne lui demande.
|
| Mon problème est qu' il ne veut plu aller dans le répertoire il me dit
| alors:
|
| Propriété ou méthone non gérée par cet objet.
|
| Peut-on m'aider svp ?
|
| Bien à vous.
|
|
Avatar
Jc
Bonjour(soir) Anor,

<Anor> a écrit dans le message de
news:
Bonjour,

Vérifie dans le menu outils > Références d'un moduble vba si celle de
word est cochée.


Remplace Print par Call

ps : qu'est-ce que tu comptes faire avec ton fhandlefile ?

G:CDSfiches cursus est un dossier et cette fonction n'a pas l'air
d'apporter beaucoup de

choses de plus dans ton cas que la commande shell directement...

Je m'immisce... Apparemment, d'après les nombreux messages déjà postés,

"fiches cursus" est un fichier word... on lui a déjà dit de mettre son
extension "fiches cursus.doc" ,,, mais y veut pas...

--
Bonne fin de journée.
----------------------------------------
Jclg88
Cliquer sur ce lien pour me joindre par mél :
http://cerbermail.com/?JVKAlLV1Rf
----------------------------------------