VBA: How to run another application from MS Access

后端 未结 4 1371
南方客
南方客 2021-01-11 13:46

I\'ve been trying to get this issue figured out, and it seems that I cannot find the solution to the problem anywhere. Here was the first part: VBA Shell command always retu

相关标签:
4条回答
  • 2021-01-11 14:08

    Check

    Shell szFileName, vbNormalFocus
    

    with some other executable. It can be some problem with your tool.

    0 讨论(0)
  • 2021-01-11 14:15

    Just messing about with http://www.mombu.com/microsoft/scripting-wsh/t-vista-uac-problem-with-wscriptshell-run-method-1508617.html. I tried this on Windows 7 home PC.

    Set objShell = CreateObject("Shell.Application")
    myPath = Environ("ProgramFiles(x86)") & "\mytool"
    Set objFolder = objShell.Namespace(myPath)
    Set objFolderItem = objFolder.ParseName("mytool.exe")
    objFolderItem.InvokeVerb "runas"
    

    It might give you some ideas.

    0 讨论(0)
  • 2021-01-11 14:22

    follow this link

    MS ACCESS: LAUNCH AN APPLICATION FROM ACCESS 2003/XP/2000/97

    here is an example of running an application in ms access

    Private Sub Command1_Click()
    Dim myPath As String
    myPath = "C:\Program Files\mytool\mytool.exe"
    Call Shell(myPath , 1)
    End Sub
    

    i wish it helps you

    0 讨论(0)
  • 2021-01-11 14:23

    I always use ShellExecute from the Windows API when I need to execute something in VBA.
    As far as I know, it works on machines without full privileges as well.

    Example:

    Declare Function ShellExecute 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 lpnShowCmd As Long) As Long
    
    
    Public Sub ShellEx(ByVal Path As String, Optional ByVal Parameters As String, Optional ByVal HideWindow As Boolean)
    
        If Dir(Path) > "" Then
            ShellExecute 0, "open", Path, Parameters, "", IIf(HideWindow, 0, 1)
        End If
    
    End Sub
    

    Now you can call ShellEx to run pretty much anything:

    'run executable
    ShellEx "c:\mytool.exe"
    
    'open file with default app
    ShellEx "c:\someimage.jpg"
    
    'open explorer window
    ShellEx "c:\"
    

    Note that ShellEx has two optional parameters as well.
    I didn't show this in the above examples, but you can:

    • pass parameters to executables
    • hide the window of the called executable
    0 讨论(0)
提交回复
热议问题