Avatar billede hdg Nybegynder
29. januar 2004 - 10:23 Der er 6 kommentarer og
2 løsninger

Hvordan åpne ett word/pdf dokument

Jeg ønsker at når man klikke på en kommando knapp i access97 skal ett bestemt word dokument eller pdf dokument skal åpnes.

Brukerene av access bruker windows NT

Har dere forslag på en vba kode ?
29. januar 2004 - 10:35 #1
Læg nedenstående kode i et modul:
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&

'***************Usage Examples***********************
'Open a folder:    ?fHandleFile("C:\TEMP\",WIN_NORMAL)
'Call Email app:    ?fHandleFile("mailto:dash10@hotmail.com",WIN_NORMAL)
'Open URL:          ?fHandleFile("http://home.att.net/~dashish", WIN_NORMAL)
'Handle Unknown extensions (call Open With Dialog):
'                  ?fHandleFile("C:\TEMP\TestThis",Win_Normal)
'Start Access instance:
'                  ?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


Herefter kan du lægge denne kode på en kommandoknap:
call fHandleFile("C:\Din fil.pdf")

/Thomas
Avatar billede jkrons Professor
29. januar 2004 - 10:40 #2
Hvis det bare er et Word dokument, kan du gøre det med automation:

    Dim wdApp As Object
    Set wdApp = CreateObject("word.Application")
    wdApp.Documents.Open FileName:="c:\minfil.doc"
    Set wdApp = Nothing
Avatar billede hdg Nybegynder
29. januar 2004 - 10:53 #3
Når jeg bruker din kode. Skjer det ingen ting.
Kan dette ha noe med at jeg bruker windows NT ?
Er det noen tillegskode som er glemt ?
Avatar billede hdg Nybegynder
29. januar 2004 - 11:00 #4
Når jeg bruker koden til thomasjepsen får jeg kompileringsfeil,
han takler ikke "Call fHandleFile"
29. januar 2004 - 11:08 #5
ah, jeg tror at jeg glemte en parameter. Prøv denne:
call fHandleFile("C:\Din fil.pdf",WIN_NORMAL)
Avatar billede hdg Nybegynder
29. januar 2004 - 12:12 #6
Hvilken kode må jeg bruke, om pdf dokumentet skal skrives ut ?
Avatar billede tma Juniormester
13. april 2007 - 13:04 #7
Hej Thomas

Er det muligt at få dit modul til at acceptere en UNC-sti?

pft Torben
Avatar billede tma Juniormester
13. april 2007 - 13:10 #8
Så lige:
HandleFile("http://home.att.net/~dashish", WIN_NORMAL)

Den kan jeg jo bare bruge og lade pdf åbne i browser...

Torben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester