了解如何建立運算式

您可以使用運算式來對您的資料執行各種操作。例如,判斷某張訂單已經出貨了多少天,或是將 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: 文字將新的資料行命名為 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",則設定條件的運算式為:

[Items]>=10

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

程序

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

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

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

  4. 在方塊中輸入條件運算式,或按一下運算式方塊旁的 [建立] 按鈕 按鈕影像 以開始使用運算式建立器

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

頁面頂端

請參閱

使用運算式建立器

運算式簡介

運算式語法指南

運算式的範例

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×