(Access) 的 Application.SysCmd 方法
使用 SysCmd 方法可在狀態列中顯示進度表或選擇性指定的文字、傳回 Microsoft Access 及其相關聯檔案的相關資訊,或傳回指定資料庫物件的狀態 (以指出物件是否已開啟、是新的物件,或是已變更但未儲存) 。 Variant.
語法
運算式。SysCmd (Action、 Argument2、 Argument3)
expression 代表 Application 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
Action | 必要 | AcSysCmdAction | AcSysCmdAction常數,識別要採取的動作類型。 此常數組適用於進度表。 如果這些動作成功, SysCmd 方法會 傳回 Null 。 否則,Access 會產生執行階段錯誤。 |
Argument2 | 選用 | Variant | 要顯示的文字靠左對齊在狀態列中。 當 Action 引數為 acSysCmdInitMeter、 acSysCmdUpdateMeter或 acSysCmdSetStatus時,就需要這個引數;此引數對其他 Action 引數值無效。 注意:當您指定Action參數的acSysCmdGetObjectState值時,必須指定適當的AcObjectType 常數。 |
Argument3 | 選用 | 變數 | 為數值運算式的控制項顯示進度表。 當 Action 引數為 acSysCmdInitMeter時,就需要這個引數;此引數對其他 Action 引數值無效。 注意:當您為Action參數指定acSysCmdGetObjectState值時,必須指定資料庫物件的名稱。 |
傳回值
Variant
註解
例如,若要建置可建立新表單的自訂精靈,您可以使用 SysCmd 方法來顯示進度表以其建構表單指出精靈的進度。
呼叫 SysCmd 方法搭配各種進行測量器動作,您可以有已知的持續時間或數個步驟,作業的狀態列中顯示進度表並更新,以指出作業的進度。
若要在狀態列中顯示進度表,您必須先使用acSysCmdInitMeter宏指令引數和Text和Value引數呼叫SysCmd方法。 當 Action 引數為 acSysCmdInitMeter時, Value 引數是計量的最大值,或是 100%。
若要更新計量以顯示作業的進度,請使用acSysCmdUpdateMeter宏指令引數和Value引數呼叫SysCmd方法。 當 Action 引數為 acSysCmdUpdateMeter時, SysCmd 方法會使用 Value 引數來計算計量所顯示的百分比。 例如,如果您將最大值設為 200,然後更新進度表值為 100,進度表會半填滿。
您也可以使用acSysCmdSetStatusAction引數和 Text 引數呼叫SysCmd方法,以變更狀態列中顯示的文字。 例如,您可能會排序時文字變更為"排序..."。 排序完成時,您會移除文字以重設狀態列。 Text引數可以包含大約 80 個字元。 因為狀態列文字是使用比例字型顯示,所以您可以顯示的實際字元數取決於 Text 引數所指定之所有字元的總寬度。
當您增加狀態列文字的寬度,會降低進度表的長度。 如果文字超過狀態列,而 Action 引數是 acSysCmdInitMeter, 則 SysCmd 方法會 忽略文字,而且不會在狀態列中顯示任何內容。 如果文字超過狀態列,而 Action 引數是 acSysCmdSetStatus, 則 SysCmd 方法會 截斷文字以符合狀態列。
狀態列文字不可以設定為零長度字串 (" ")。 如果您想要從狀態列移除現有的文字,請將 Text 引數設定為單一空格。 下列範例說明移除狀態列文字的方法:
varReturn = SysCmd(acSysCmdInitMeter, " ", 100)
varReturn = SysCmd(acSysCmdSetStatus, " ")
當您使用acSysCmdSetStatusAction引數呼叫SysCmd方法來設定文字時,如果已經顯示進度表,則 SysCmd方法會自動移除計量。
使用其他動作呼叫 SysCmd 方法,以判斷 Access 的系統資訊,包括 Access 正在執行的版本號碼、是否為執行階段版本、Access 可執行檔的位置、命令列中指定的 /profile 引數設定,以及與 Access 相關聯的.ini檔案名稱。
注意事項
Access 的一般和自訂設定現在都會儲存在 Windows 登錄中,因此您可能不需要使用 Access 應用程式.ini檔案。 acSysCmdIniFileAction引數的存在是為了與舊版 Access 相容。
使用acSysCmdGetObjectStateAction引數和ObjectType和ObjectName引數呼叫SysCmd方法,以傳回指定之資料庫物件的狀態。 物件可以是下列四種可能的狀態: 未開啟或不存在、 開啟、 新增或變更但未儲存。
例如,如果您在設計資料表中插入一個新的功能變數的精靈,您需要決定資料表的結構是否已變更但尚未儲存,以便將其儲存然後再修改其結構。 您可以檢查來決定資料表的狀態 SysCmd 方法所傳回的值。
具有acSysCmdGetObjectState宏指令引數的SysCmd方法可以傳回下列常數的任何組合。
常數 | 資料庫物件狀態 | 值 |
---|---|---|
acObjStateOpen | 開啟 | 1 |
acObjStateDirty | 設計已變更但尚未儲存 | 2 |
acObjStateNew | New | 4 |
注意事項
如果 ObjectName 引數所參考的物件未開啟或不存在, 則 SysCmd 方法會 傳回零的值。
當 ActiveX 控制項新增至表單時,下列程式碼可用來在運算式中使用您的 ActiveX 控制項。
SysCmd 14, "<ActiveX Control GUID>"
注意事項
- 將 取代
<ActiveX Control GUID>
為識別您想要在運算式中啟用之 ActiveX 控制項的全域唯一識別碼 (GUID) 。 - 將 ActiveX 控制項新增至允許的控制項清單之後,您就無法移除它。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應