Open Hyperlinks in Access

北慕城南 提交于 2019-12-01 12:36:12

Application.FollowHyperLink() has problems with security, especially when opening files on a network drive. See e.g. here: http://blogannath.blogspot.de/2011/04/microsoft-access-tips-tricks-opening.html

A better method is the ShellExecute() API function. Essentially it looks like this (trimmed from http://access.mvps.org/access/api/api0018.htm ):

' This code was originally written by Dev Ashish.
' http://access.mvps.org/access/api/api0018.htm

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

Public Const WIN_NORMAL = 1         'Open Normal
Private Const ERROR_SUCCESS = 32&


Public Function fHandleFile(stFile As String) As Boolean

    Dim lRet As Long

    lRet = apiShellExecute(hWndAccessApp(), "Open", stFile, vbNullString, vbNullString, WIN_NORMAL)

    If lRet > ERROR_SUCCESS Then
        ' OK
        fHandleFile = True
    Else
        Select Case lRet
            ' Handle various errors
        End Select
        fHandleFile = False
    End If

End Function

Now for your listbox: Set it to 2 columns, the first being the model name, the second the file path. Set the column width of the second column to 0, so it will be invisible.

And in the doubleclick event, call fHandleFile with the second column (file path):

Private Sub lstManuals_DblClick(Cancel As Integer)

    Call fHandleFile(Me.lstManuals.Column(1))

End Sub
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!