(Access) 的 Application.SysCmd 方法
使用 SysCmd 方法可在狀態列中顯示進度表或選擇性指定的文字、傳回 access 及其相關聯檔案Microsoft資訊,或傳回指定資料庫物件的狀態 (以指出物件是否已開啟、是新的物件,或是已變更但未儲存) 。 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 支援與意見反應。