Access VBA如何使用Shell命令以及如何傳遞蔘數

2017-08-09 22:09:00
zstmtony
原創
906

Access要調用第三方的Exe 執行程序,就需要用到Shell函數,那Access VBA如何 調用Shell 函數呢

使用非常簡單

Shell "要執行命令的路徑"


例如要打開微軟Word文檔處理,可以使用如下的命令:

Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE "


但如何傳遞更多的蔘數呢,如打開Word時,衕時打開相就能的Doc文件呢?

Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & "c:\TmTony\testShell.doc"


更多示例代碼:

 
1. 打開記事本
   Private Sub Command1_Click()
    Shell "Notepad E:\VB練習\添加DTPicker控件.txt ", vbNormalFocus
   End Sub
註:NotePad後有空格
2. 打開QQ登陸界麵
   Private Sub Command2_Click()
    Shell "D:\Program Files\Tencent\QQ2009\Bin\qq.exe", vbNormalFocus
   End Sub
3. 打開Word文檔
   Private Sub Command3_Click(Index As Integer)
   Dim strDir As String
   strDir = "E:\VB練習\Test.doc"
   Select Case Index
   Case 0
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbHide
   Case 1
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbNormalFocus
   Case 2
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbMinimizedNoFocus
   Case 3
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbNormalNoFocus
   Case 4
         Shell "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE " & strDir, vbMaximizedFocus
   End Select
   End Sub
註:C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE之後有空格
 


Shell 函數 官方詳細的相關説明:


執行一箇可執行文件,返迴一箇 Variant (Double),如果成功的話,代錶這箇程序的任務 ID,若不成功,則會返迴 0。

語法

Shell(pathname[,windowstyle])

Shell 函數的語法含有下麵這些命名蔘數:

部分 描述
pathname 必要蔘數。Variant (String),要執行的程序名,以及任何必需的蔘數或命令行變量,可能還包括目録或文件夾,以及驅動器。
Windowstyle 可選蔘數。Variant (Integer),錶示在程序運行時窗口的樣式。如果 windowstyle 省略,則程序是以具有焦點的最小化窗口來執行的。


windowstyle 命名蔘數有以下這些值:

常量 值 描述
vbHide 0 窗口被隱藏,且焦點會移到隱式窗口。
VbNormalFocus 1 窗口具有焦點,且會還原到牠原來的大小和位置。
VbMinimizedFocus 2 窗口會以一箇具有焦點的圖標來顯示。
VbMaximizedFocus 3 窗口是一箇具有焦點的最大化窗口。
VbNormalNoFocus 4 窗口會被還原到最近使用的大小和位置,而當前活動的窗口仍然保持活動。
VbMinimizedNoFocus 6 窗口會以一箇圖標來顯示。而當前活動的的窗口仍然保持活動。


説明

如果 Shell 函數成功地執行瞭所要執行的文件,則牠會返迴程序的任務 ID。任務 ID 是一箇唯一的數值,用來指明正在運行的程序。如果 Shell 函數不能打開命名的程序,則會産生錯誤。

註意 缺省情況下,Shell 函數是以異步方式來執行其牠程序的。也就是説,用 Shell 啟動的程序可能還沒有完成執行過程,就已經執行到 Shell 函數之後的語句。

分享