(Access) 的 Application.SysCmd 方法

使用 SysCmd 方法可在狀態列中顯示進度表或選擇性指定的文字、傳回 Microsoft Access 及其相關聯檔案的相關資訊,或傳回指定資料庫物件的狀態 (以指出物件是否已開啟、是新的物件,或是已變更但未儲存) 。 Variant.

語法

運算式SysCmd (ActionArgument2Argument3)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Action 必要 AcSysCmdAction AcSysCmdAction常數,識別要採取的動作類型。 此常數組適用於進度表。 如果這些動作成功, SysCmd 方法會 傳回 Null 。 否則,Access 會產生執行階段錯誤。
Argument2 選用 Variant 要顯示的文字靠左對齊在狀態列中。 當 Action 引數為 acSysCmdInitMeteracSysCmdUpdateMeteracSysCmdSetStatus時,就需要這個引數;此引數對其他 Action 引數值無效。

注意:當您指定Action參數的acSysCmdGetObjectState值時,必須指定適當的AcObjectType 常數。
Argument3 選用 變數 為數值運算式的控制項顯示進度表。 當 Action 引數為 acSysCmdInitMeter時,就需要這個引數;此引數對其他 Action 引數值無效。

注意:當您為Action參數指定acSysCmdGetObjectState值時,必須指定資料庫物件的名稱。

傳回值

Variant

註解

例如,若要建置可建立新表單的自訂精靈,您可以使用 SysCmd 方法來顯示進度表以其建構表單指出精靈的進度。

呼叫 SysCmd 方法搭配各種進行測量器動作,您可以有已知的持續時間或數個步驟,作業的狀態列中顯示進度表並更新,以指出作業的進度。

若要在狀態列中顯示進度表,您必須先使用acSysCmdInitMeter指令引數和TextValue引數呼叫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引數和ObjectTypeObjectName引數呼叫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 支援與意見反應