了解如何建立運算式

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

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

本文內容

計算表單和報表上控制項的值
在查詢中建立導出欄位
設定資料表欄位的預設值
新增驗證規則至資料表欄位或記錄
將報表中的資料分組和排序
使用運算式做為查詢準則
在資料表中建立導出欄位
設定控制項的預設值
新增驗證規則至控制項
控制要執行哪些巨集指令

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

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

報表上的總計

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


   =Sum([table_field])

此時, table_field 是包含你小計值的欄位名稱。 該欄位可位於資料表或查詢中。 Sum 函數計算所有 的 table_field總值。

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]
  2. 選取要輸入運算式的控制項。
  3. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
  4. 要手動建立表達式,請在屬性表中的 Data 標籤中點選文字框中的 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. 在顯示的清單中,按一下 [導出欄位],然後按一下要用於結果的資料類型。 存取時會顯示表達式建構器

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

    [Quantity] * [Unit Price]
    

    對於計算過的域,表達式開頭不要等號 (=) 。

  5. 按一下 [確定]
    Access 隨即新增導出欄位,然後醒目提示欄位標題,以供您輸入欄位名稱。

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

頁面頂端

設定資料表欄位的預設值

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


Now()

程序

  1. 在 [功能窗格] 中,按兩下要變更的資料表。
    Access 會在 [資料工作表檢視] 中開啟資料表。
  2. 選取要變更的欄位。
  3. 在色帶上點選「 表格欄位」,在 屬性 群組中點選 「預設值」。 存取時會顯示表達式建構器
  4. 在方框輸入你的表達式,確保以等號開頭, (=) 。

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

頁面頂端

設定控制項的預設值

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


Date()

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

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視][版面配置檢視]
  2. 選取要變更的控制項。
  3. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
  4. 按一下屬性表上的 [全部] 索引標籤,然後按一下 [預設值] 屬性方塊。
  5. 輸入表達式,或點擊屬性框中的「建置按鈕」圖片,使用表達式建構器建立表達式。

頁面頂端

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

表達式對於驗證資料輸入資料庫時非常有用——能防止錯誤資料被排除在外。在資料表中,有兩種驗證規則:欄位驗證規則 (防止使用者在單一欄位) 輸入錯誤資料;以及紀錄驗證規則 (防止使用者建立不符合驗證規則) 的紀錄。 您針對這兩種驗證規則使用運算式。

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


 >=0

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

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

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

  3. 在功能區點選「表格欄位」,然後在欄位驗證群組中點「驗證」,接著點選欄位驗證規則或驗證規則。 存取時會顯示表達式建構器

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

     >=0
    

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

驗證規則表達式是布林運算式,意即對任意輸入值皆為TrueFalse或。 驗證規則必須針對 True 該值,否則 Access 不會儲存輸入,而是顯示錯誤的驗證訊息。 在此範例中,若您輸入的手 頭單位 欄位值小於零,驗證規則為 False,Access 不接受該值。 如果您尚未輸入下節所述的驗證訊息,Access 便會顯示它自己的訊息,指出您所輸入的值已遭欄位的驗證規則禁止。

程序:輸入驗證訊息

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

  1. 在 [功能窗格] 中,按兩下要變更的資料表。
    Access 會在 [資料工作表檢視] 中開啟資料表。
  2. 如果是欄位驗證訊息,請選取要新增驗證規則的欄位。
  3. 在功能區點選「表格欄位」,然後在「欄位驗證」群組中點「驗證」,接著點選欄位驗證訊息或驗證訊息。
  4. [輸入驗證訊息] 對話方塊中,輸入您要在資料與驗證規則不相符時顯示的訊息,然後按一下 [確定]

頁面頂端

新增驗證規則至控制項

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

屬性 設定
驗證規則 >=#1/1/2017#
驗證文字 您無法輸入早於 2017/1/1 的日期。

如果你嘗試輸入早於 2017 年 1/1 日的日期,會跳出訊息,並在 驗證文字 屬性中顯示該文字。 若在驗證 文字 屬性框中未輸入文字,存取會顯示一般訊息。 按一下 [確定] 之後,Access 會返回文字方塊。

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

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視][版面配置檢視]
  2. 以滑鼠右鍵按一下要變更的控制項,然後按一下捷徑功能表中的 [屬性]。 Access 會顯示控制項的屬性表。
  3. 按一下 [全部] 索引標籤,然後按一下 [驗證規則] 屬性方塊。
  4. 輸入表達式,或點擊屬性框中的「建置按鈕」圖片,使用表達式建構器建立表達式。
    不要在表達式前面加上 = 運算子。
  5. 若要自訂使用者輸入與驗證規則不相符的資料時要顯示的文字,請在 [驗證文字] 屬性中輸入所要文字。

頁面頂端

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

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

分組是組合包含重複值的欄的程序。 舉例來說,假設你的資料庫包含不同城市辦公室的銷售資訊,而資料庫中的一份報告名為「按城市銷售」。提供該報告資料的查詢會依照你的城市值來分組。 這種類型的分組可以使您的資訊更易於閱讀和理解。

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

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

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]
  2. 在功能區點選 「報表設計」,在「 群組 & 總計」 群組中點選 「群組 & 排序」。 [群組、排序與合計] 窗格會出現在報表下方。
  3. 若要將群組層次新增到報表,請按一下 [新增群組]
  4. 若要將排序順序新增到報表,請按一下 [新增排序]
    新的群組層次或排序順序,以及提供報表資料的欄位清單都會顯示在窗格中。 此圖顯示典型的新群組層次 (依類別分組) 和排序順序 (依製造商排序),以及群組和排序可用欄位的清單:
    選擇 [群組、排序與合計] 窗格中的運算式選項。
  5. 在可用欄位的清單底下,按一下 [運算式] 以開始使用運算式建立器
  6. 在運算式建立器的運算式方塊 (上面的方塊) 中輸入要使用的運算式。 確保你用等 (= 的) 運算子開頭。

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

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]
  2. 按一下要變更的群組層次或排序順序。
  3. 按一下 [群組對象] (針對群組層次) 或 [排序方式] (針對排序順序) 旁的向下鍵。 包含可用欄位的清單隨即出現。
  4. 在包含欄位的清單底部,按一下 [運算式] 以開始使用運算式建立器
  5. 在運算式建立器的運算式方塊 (上面的方塊) 中輸入運算式。 請確保你的表達式以相等的 (=) 運算子開頭。

頁面頂端

控制要執行哪些巨集指令

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

在這個範例中,假設文字方塊名為 "Items",則設定條件的運算式為:


[Items]>=10

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

程序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的巨集,然後按一下捷徑功能表中的 [設計檢視]
  2. 按一下要修改的 [If] 區塊,或是從 [巨集指令目錄] 窗格中新增 [If] 區塊。
  3. 按一下 [If] 區塊的最上面一行。
  4. 請在該框輸入你的條件表達式,或點擊表達式框旁的 「建置 按鈕 」圖片 ,開始 使用表達式建構器

你輸入的表達式必須是布林,也就是要麼TrueFalse是。 If 區塊內的巨集動作僅在條件為 True時執行。

頁面頂端

另請參閱

使用運算式建立器

運算式簡介

運算式語法指南

運算式的範例