Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

您可以使用運算式來對您的資料執行各種操作。 例如,判斷某張訂單已經出貨了多少天,或是將 FirstNameLastName 合併成 FullName。 下列各節將逐步示範如何建立運算式。

本文內容

計算表單和報表上控制項的值

在查詢中建立導出欄位

設定資料表欄位的預設值

新增驗證規則至資料表欄位或記錄

將報表中的資料分組和排序

使用運算式做為查詢準則

在資料表中建立導出欄位

設定控制項的預設值

新增驗證規則至控制項

控制要執行哪些巨集指令

計算表單和報表上控制項的值

當您使用運算式做為控制項的資料來源時,可以建立計算控制項。 例如,假設您的報表可以顯示多項庫存記錄,而且您想要在報表尾建立總計以加總報表的所有細項。

報表上的總計

若要計算總數,請將文字方塊控制項放在報表尾,然後在下列運算式中設定文字方塊的 ControlSource 屬性:

      =Sum([table_field])

在這個案例中,table_field 是包含小計值之欄位的名稱。 該欄位可位於資料表或查詢中。 Sum 函數會加總 table_field 的所有值。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]

  2. 選取要輸入運算式的控制項。

  3. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。

  4. 若要手動建立運算式,請在屬性工作表的 [資料] 索引標籤上,按一下文字方塊的 ControlSource 屬性,然後輸入 =,接著再輸入運算式的其餘部分。 例如,若要計算上述的小計,請輸入 =Sum([table_field]),務必將 table_field 換成您的欄位名稱。

  5. 若要 使用表達式建立器建立表達式,請按下屬性方塊中 按鈕影像 的 [ 建立 ] 按鈕。

    完成運算式之後,屬性工作表看起來像這樣:

    文字方塊的 [控制項資料來源] 屬性中的運算式。

頁面頂端

使用運算式做為查詢準則

您可以在查詢中使用準則以縮小查詢結果。 當您輸入準則做為運算式,Access 就只會傳回符合運算式的資料列。

例如,假設您要查看出貨日期在 2017 年前三個月的所有訂單。 若要輸入準則,請在查詢中 [日期/時間] 資料行的 [準則] 儲存格內,輸入下列運算式。 這個範例會使用名為 ShippedDate 的 [日期/時間] 資料行。 若要定義日期範圍,請用這種方式輸入準則:

Between #1/1/2017# And #3/31/2017#

ShippedDate 資料行會與下圖所示類似。

查詢方格 [準則] 列中的運算式。

對於 Orders 資料表的每一筆記錄而言,如果 ShippedDate 資料行中的值在您指定的日期範圍內,則在查詢輸出中將會包含該記錄。 請注意,在運算式會用井字號 (#) 括住日期。 Access 會將井字號括住的值視為「日期/時間」資料類型。 將這些值當做日期/時間資料處理,可讓您對這些值進行計算,例如將日期相減。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的查詢,然後按一下捷徑功能表中的 [設計檢視]

  2. 按一下要輸入準則的資料行中的 [準則] 儲存格。

  3. 若要手動建立您的運算式,請輸入準則運算式。 請不要在準則運算式前面加上 = 運算子。

  4. 若要使用運算式建立器建立您的運算式,請在功能區上,按一下 [設計],然後按一下 [查詢設定] 群組中的 [建立器] 按鈕影像

    如果需要更大的空間編輯運算式,請將游標放在 [準則] 儲存格,然後按下 SHIFT+F2 以顯示 [放大顯示] 方塊:

    [放大顯示] 對話方塊中的運算式。

    提示   若要讓文字更容易閱讀,請選取 [字型]。

頁面頂端

在查詢中建立導出欄位

假設您正在設計查詢,而且想要使用查詢中的其他欄位顯示計算結果。 若要建立導出欄位,您可以在查詢之 [欄位] 列的空白儲存格中輸入運算式。 例如,如果查詢包含 Quantity 欄位和 Unit Price 欄位,您可將兩個欄位相乘以建立 Extended Price 導出欄位 (方法是在查詢的 [欄位] 列中輸入下列運算式):

Extended Price: [Quantity] * [Unit Price]

運算式前面的 Extended Price: 文字則會將新欄命名為「產品總價」。 此名稱通常稱為「別名」。 如果您沒有提供別名,Access 便會自行建立,例如 Expr1.

使用運算式在查詢中建立導出欄位。

當您執行查詢時,Access 就會在每一列上執行計算,如下圖所示:

[資料工作表檢視] 中顯示的導出欄位。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的查詢,然後按一下捷徑功能表中的 [設計檢視]

  2. 按一下要建立導出欄位的資料行中的 [欄位] 儲存格。

  3. 若要手動建立自己的運算式,請輸入運算式。

    請不要在準則運算式前面加上 = 運算子;而是改用描述性標籤加上冒號來開始運算式。 例如,輸入 Extended Price: 以提供運算式的標籤,便會建立名為 Extended Price 的導出欄位。 接著,在冒號後面輸入運算式的準則。

  4. 若要使用運算式建立器建立您的運算式,請在功能區上,按一下 [設計],然後按一下 [查詢設定] 群組中的 [建立器]。

頁面頂端

在資料表中建立導出欄位

在 Access 中,您可以在資料表中建立導出欄位。 如此就不需要個別查詢以執行計算。 例如,如果資料表依序列出每個項目的數量、價格和營業稅,您就可以新增顯示總價的導出欄位,如下所示:

[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))

計算不能包含其他資料表或查詢的欄位,且計算的結果為唯讀。

程序

  1. 在 [功能窗格] 中,按兩下資料表加以開啟。

  2. 水平捲動至資料表最右邊的欄,然後按一下 [按一下以新增] 欄標題。

  3. 在顯示的清單中,按一下 [導出欄位],然後按一下要用於結果的資料類型。 Access 隨即顯示運算式建立器

  4. 輸入要用於此欄位的計算,例如:

    [Quantity] * [Unit Price]

    若是導出欄位,不必在運算式的開頭加上等號 (=)。

  5. 按一下 [確定]

    Access 隨即新增導出欄位,然後醒目提示欄位標題,以供您輸入欄位名稱。

  6. 輸入導出欄位的名稱,然後按 ENTER。

頁面頂端

設定資料表欄位的預設值

您可以使用運算式為資料表中的欄位指定預設值;除非另行提供值,否則 Access 會針對新記錄使用該預設值。 例如,假設您想要只要有人新增記錄,就會自動將日期和時間插入名為「訂單日期」的欄位。 若要這麼做,您可以使用下列運算式:

Now()

程序

  1. 在 [功能窗格] 中,按兩下要變更的資料表。

    Access 會在 [資料工作表檢視] 中開啟資料表。

  2. 選取要變更的欄位。

  3. 按兩下功能區上的 [ 資料表字段],然後按兩下 [ 屬性 ] 群組中的 [ 預設值]。 Access 隨即顯示運算式建立器

  4. 在方塊中輸入您的運算式,請確定在運算式的開頭加上等號 (=)。

注意    如果您將控制項繫結至資料表欄位,而控制項和資料表欄位都有預設值,則控制項的預設值會優先於資料表欄位。

頁面頂端

設定控制項的預設值

另一個常使用運算式的位置是控制項的 [預設值] 屬性。 控制項的 [預設值] 屬性就像是資料表欄位的 [預設值] 屬性。 例如,若要使用目前的日期做為文字方塊的預設值,您可以使用下列運算式:

Date()

這個運算式會使用 Date 函數傳回目前的日期,但不會傳回時間。 若是您將文字方塊繫結至資料表欄位,而欄位也有預設值,則控制項的預設值會優先於資料表欄位。 設定資料表欄位的 [預設值] 屬性是較合適的做法。 如此一來,如果您以相同資料表欄位做為不同表單之數個控制項的基礎,則會在每個控制項套用相同的預設值,以協助確認每個表單上的資料輸入一致。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視][版面配置檢視]

  2. 選取要變更的控制項。

  3. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。

  4. 按一下屬性表上的 [全部] 索引標籤,然後按一下 [預設值] 屬性方塊。

  5. 輸入表達式,或按兩下屬性方塊中 按鈕影像 的 [ 建立 ] 按鈕, 以使用 [表達式建立器] 建立表達式

頁面頂端

新增驗證規則至資料表欄位或記錄

在資料庫中輸入資料時,最好使用運算式加以驗證,以避免輸入不正確的資料。 在資料表中有兩種驗證規則:欄位驗證規則 (防止使用者在單一欄位中輸入不正確的資料),以及記錄驗證規則 (防止使用者建立不符合驗證規則的記錄)。 您針對這兩種驗證規則使用運算式。

例如,假設您有一個名為 Inventory 的資料表,其中有個欄位名為 Units On Hand ,而現在您要設定規則,讓使用者只能輸入大於或等於零的值。 也就是說,庫存不能是負數。 如果要這麼做,您可以使用下列運算式做為 Units On Hand 欄位的欄位驗證規則:

 >=0

程序:輸入欄位或記錄驗證規則

  1. 在 [功能窗格] 中,按兩下要變更的資料表。 Access 會在資料工作表檢視中開啟資料表。

  2. 如果是欄位的驗證規則,請選取要變更的欄位。

  3. 按兩下功能區上的 [ 資料表欄位],然後按兩下 [ 欄位驗證 ] 群組中的 [ 驗證],然後按兩下 [ 字段驗證規則 ] 或 [ 驗證規則]。 Access 隨即顯示運算式建立器

  4. 開始輸入您所要的準則。 例如,如果欄位驗證規則要求所有的值要大於或等於零,請輸入下列內容:

     >=0

    請不要在運算式前面加上等號 (=)。

驗證規則運算式是布林值,這表示其針對任何特定輸入值皆為 TrueFalse。 值的驗證規則必須為 True,否則 Access 就不會儲存輸入,並且會顯示指出錯誤的驗證訊息。 在此範例中,如果您輸入的 Units On Hand 欄位值小於零,驗證規則為 False,則 Access 不會接受該值。 如果您尚未輸入下節所述的驗證訊息,Access 便會顯示它自己的訊息,指出您所輸入的值已遭欄位的驗證規則禁止。

程序:輸入驗證訊息

若要讓資料庫更容易使用,您可以輸入自訂驗證訊息。 這些自訂訊息會取代 Access 在資料不符合驗證規則時所顯示的一般訊息。 您可以使用自訂驗證訊息來提供特定資訊,協助使用者輸入正確的資料,例如「庫存數量值不可為負數」。

  1. 在 [功能窗格] 中,按兩下要變更的資料表。

    Access 會在 [資料工作表檢視] 中開啟資料表。

  2. 如果是欄位驗證訊息,請選取要新增驗證規則的欄位。

  3. 按兩下功能區上的 [ 資料表欄位],然後按兩下 [ 字段驗證 ] 群組中的 [ 驗證],然後按兩下 [ 字段驗證訊息 ] 或 [ 驗證郵件]

  4. [輸入驗證訊息] 對話方塊中,輸入您要在資料與驗證規則不相符時顯示的訊息,然後按一下 [確定]

頁面頂端

新增驗證規則至控制項

除了資料表欄位及記錄以外,控制項還有可接受運算式的 [驗證規則] 屬性。 例如,假設您使用表單輸入報表的日期範圍,而且想確定開始日期不會早於 2017/1/1。 您可以輸入開始日期至下列文字框的文字盒設定驗證 規則驗證文字 屬性:

屬性

設定

驗證規則

>=#2017/1/1#

驗證文字

您無法輸入早於 2017/1/1 的日期。

如果您嘗試輸入早於 2017/1/1 的日期,就會出現一則訊息,並在 [ 驗證文字 ] 屬性中顯示文字。 如果未在 [ 驗證文字 ] 屬性方塊中輸入任何文字,Access 會顯示一般訊息。 按一下 [確定] 之後,Access 會返回文字方塊。

無論在何處修改資料表欄位,只要針對該欄位設定驗證規則,就會在整個資料庫中強制執行規則。 或者,如果針對表單上的控制項設定驗證規則,則只有當使用該表單時才會強制執行規則。 如果想要針對不同的使用者建立不同的驗證規則,則可以分別針對資料表欄位及表單上的控制項設定驗證規則。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視][版面配置檢視]

  2. 以滑鼠右鍵按一下要變更的控制項,然後按一下捷徑功能表中的 [屬性]。 Access 會顯示控制項的屬性表。

  3. 按一下 [全部] 索引標籤,然後按一下 [驗證規則] 屬性方塊。

  4. 輸入表達式,或按兩下屬性方塊中 按鈕影像 的 [ 建立 ] 按鈕, 以使用 [表達式建立器] 建立表達式

    請不要在運算式前面加上 = 運算子。

  5. 若要自訂使用者輸入與驗證規則不相符的資料時要顯示的文字,請在 [驗證文字] 屬性中輸入所要文字。

頁面頂端

將報表中的資料分組和排序

您可以使用 [群組、排序與合計] 窗格定義報表資料的群組層次和排序順序。 一般來說,您大部分都是針對從清單選取的欄位進行分組或排序。 不過,如果您要對計算值進行分組或排序,則可改成輸入運算式。

分組是組合包含重複值的欄的程序。 例如,假設您的資料庫包含不同城市之辦事處的銷售資訊,並且資料庫中的某個報表名為「各城市的銷售量」。 提供該報表資料的查詢會依照城市值對資料進行分組。 這種類型的分組可以使您的資訊更易於閱讀和理解。

相對地,排序則是強制將查詢結果中的列 (或記錄) 照順序排列。 例如,您可以依主索引鍵值 (或其他欄位中的另一組值) 遞增或遞減排序記錄,或是依一個或多個字元照指定的順序 (例如字母順序) 排序。

程序:將群組和排序加入報表

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]

  2. 按兩下功能區上的 [ 報表設計],然後在 [ 群組 & 合計 ] 群組中,按兩下 [ 群組 & 排序]。 [群組、排序與合計] 窗格會出現在報表下方。

  3. 若要將群組層次新增到報表,請按一下 [新增群組]

  4. 若要將排序順序新增到報表,請按一下 [新增排序]

    新的群組層次或排序順序,以及提供報表資料的欄位清單都會顯示在窗格中。 此圖顯示典型的新群組層次 (依類別分組) 和排序順序 (依製造商排序),以及群組和排序可用欄位的清單:

    選擇 [群組、排序與合計] 窗格中的運算式選項。

  5. 在可用欄位的清單底下,按一下 [運算式] 以開始使用運算式建立器

  6. 在運算式建立器的運算式方塊 (上面的方塊) 中輸入要使用的運算式。 請確認您以等於 (=) 運算子當做運算式的開頭。

程序:將運算式新增到現有群組或排序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]

  2. 按一下要變更的群組層次或排序順序。

  3. 按一下 [群組對象] (針對群組層次) 或 [排序方式] (針對排序順序) 旁的向下鍵。 包含可用欄位的清單隨即出現。

  4. 在包含欄位的清單底部,按一下 [運算式] 以開始使用運算式建立器

  5. 在運算式建立器的運算式方塊 (上面的方塊) 中輸入運算式。 請確認您以等於 (=) 運算子做為運算式的開頭。

頁面頂端

控制要執行哪些巨集指令

在某些情況下,建議您只在特定條件成立時,才執行巨集中的某個巨集指令或一連串巨集指令。 例如,假設您只要在文字方塊中的值大於或等於 10 時才執行巨集指令。 若要設定此規則,您可以在巨集的 [If] 區塊中使用運算式,即可在巨集中定義條件。

在此範例中,假設文字方塊的名稱為「項目」。 設定條件的運算式為:

[Items]>=10

在巨集的 [If] 區塊中使用的運算式。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的巨集,然後按一下捷徑功能表中的 [設計檢視]。

  2. 按一下要修改的 [If] 區塊,或是從 [巨集指令目錄] 窗格中新增 [If] 區塊。

  3. 按一下 [If] 區塊的最上面一行。

  4. 在方塊中輸入條件表達式,或按兩下表示式方塊旁的 [ 建立 ] 按鈕 按鈕影像 ,即可開始 使用表達式建立器

輸入的運算式必須是布林值 (表示其為 TrueFalse)。 只有在條件為 True 時,[If] 區塊中的巨集指令才會執行。

頁面頂端

另請參閱

使用運算式建立器

運算式簡介

運算式語法指南

運算式的範例

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。