SetValue 巨集指令

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

你可以使用 SetValue 巨集動作來設定表單、表單資料表或報告上的存取欄位、控制項或屬性的值。

注意

您無法使用 SetValue 巨集動作來設定會傳回物件的 Access 屬性值。

注意

如果資料庫未受信任,則不會允許此巨集指令。

設定

SetValue 巨集動作具有下列引數。

巨集指令引數 描述
項目 您要設定值的欄位、控制項或屬性名稱。 在巨集設計視窗的 動作引數 區段中的 Item 方塊中輸入欄位、控制項或屬性名稱。 你必須使用完整語法來指稱這個項目,例如在表單或報告中用 controlname (來指稱該巨集的) 或 FormsFormname控制名稱。 此為必要引數。
運算式 Access 用來設定此項目值的表達式。 您必須一律使用完整的語法來參照運算式中的物件。 例如,若要將員工表格薪資控制的值增加10%,請使用 Forms!Employees!Salary*1.1。 此為必要引數。

註: 在這個論證中,你不應該在表達式前加上等號 (=) 。 如果這樣做,Access 會評估運算式,然後在此引數中使用此值做為運算式。 如果表達式是字串,這可能會產生意想不到的結果。例如,如果你為這個參數輸入 =“String1”, Access 會先將這個運算式當作 String1 來評估。 然後它會使用 String1 作為此引數中的運算式,預期會在稱為巨集的表單或報表上找到名為 String1 的控制項或屬性。

注意

在 Access 資料庫 (.mdb 或 .accdb) 中,按一下 [建立] 按鈕以使用 [運算式產生器] 為其中一個引數建立運算式。

註解

您可以使用此動作,為欄位的值或表單、表單資料工作表或報告上的控制項設定值。 您也可以在任何檢視中為幾近全部的控制項、表單和報告屬性來設定值。 若要了解是否可以透過使用巨集設置特定屬性,以及可以在哪些檢視中進行設定,請參閱 Visual Basic 編輯器中該屬性的 [說明] 主題。

即使表單不包含綁定至該欄位的控制項,您也可以設定表單基礎資料表中的欄位值。 在 項目 方塊中使用語法 Forms!formname!fieldname 以設定這類欄位的值。 你也可以使用語法 Reports! 來參考報告底層資料表中的欄位。報告名稱fieldname,但報告上必須有一個綁定到該欄位的控制項,或該欄位必須在報告上的計算控制中被參考。

如果您在表單上設定控制項的值,則 SetValue 巨集動作不會觸發控制項的表單層級驗證規則,但如果控制項是綁定的控制項,就會觸發基礎欄位的資料表層級驗證規則。 SetValue 巨集動作也會觸發重新計算,但無法立即開始重新計算。 若要觸發立即重繪並強制完成重新計算,請使用 RepaintObject 巨集動作。 你用 SetValue 巨集動作在控制項中設定的值,也不會受到控制項或底層欄位 InputMask 屬性中輸入遮罩設定的影響。

若要變更控制項的值,您可以在由控制項的 AfterUpdate 事件屬性所指定的巨集中使用 SetValue 巨集指令。 不過,您無法在由控制項的 BeforeUpdate 事件屬性所指定的巨集中使用 SetValue 巨集指令來變更控制項的值 (雖然您可以使用 SetValue 巨集指令來變更其他控制項的值)。 您也可以在由表單的 BeforeUpdateAfterUpdate 屬性所指定的巨集中使用 SetValue 巨集指令,變更當前記錄中所有控制項的值。

注意

您不可以使用 SetValue 巨集動作來設定下列控制項的值:

  • 在報表上的綁定控制項和計算控制項。
  • 表單上的計算控制項。

秘訣

您可以在 [表單] 檢視中使用 SetValue 巨集動作來隱藏或顯示表單。 請輸入 Forms!formname**。項目欄是可見**,表達欄是「否」或「是」。 將模態表單的 Visible 屬性設為 No 會隱藏該表單並使其無模式。 將屬性設定為 [是] 則會顯示表單,並再次設為強制回應。

透過在巨集中使用 SetValue 巨集指令變更值或新增控制項中的資料並不會觸發事件,例如 BeforeUpdateBeforeInsert變更,這些事件會在您於使用者介面中變更或輸入這些控制項中的資料時會發生。 如果您透過使用 Visual Basic for Applications (VBA) 模組設定控制項的值,這些事件也不會發生。

VBA 模組中無法執行此巨集指令。 直接在 VBA 中設定值。

範例

透過使用巨集來設定控制項的值

下列巨集會從 [供應商] 表單上的按鈕開啟 [新增產品] 表單。 它會顯示 EchoCloseOpenFormSetValueGoToControl 巨集動作的用途。 SetValue 巨集指令會將 [產品] 表單上的 SupplierID 控制項設定為 [供應商] 表單上目前的供應商。 接著,GoToControl 巨集指令會將焦點移至 CategoryID 欄位,您可以在這裡開始輸入新產品的資料。 此巨集應連結至 [供應商] 表單上的 [新增產品] 按鈕。

[動作] 引數:設定 註解
Echo Echo OnNo 巨集執行時停止更新畫面。
關閉 物件類型: 表單
物件名稱: 產品清單
儲存
關閉 [產品清單] 表單。
OpenForm 表單名稱:產品
檢視: 表單
資料模式: 新增
Window ModeNormal
開啟 [產品] 表單。
SetValue 項目: [Forms]![Products]![SupplierID]
運算式: SupplierID
在 [供應商] 表單上將 SupplierID 控制項設定為目前的供應商。
GoToControl 控制項名稱: CategoryID 前往 CategoryID 控制項。