了解如何建立運算式
套用到
您可以使用運算式來對您的資料執行各種操作。 例如,判斷某張訂單已經出貨了多少天,或是將 FirstName 和 LastName 合併成 FullName。 下列各節將逐步示範如何建立運算式。
本文內容
|
計算表單和報表上控制項的值 在查詢中建立導出欄位 設定資料表欄位的預設值 新增驗證規則至資料表欄位或記錄 將報表中的資料分組和排序 |
使用運算式做為查詢準則 在資料表中建立導出欄位 設定控制項的預設值 新增驗證規則至控制項 控制要執行哪些巨集指令 |
|---|
計算表單和報表上控制項的值
當您使用運算式做為控制項的資料來源時,可以建立計算控制項。 例如,假設您的報表可以顯示多項庫存記錄,而且您想要在報表尾建立總計以加總報表的所有細項。
若要計算總數,請將文字方塊控制項放在報表尾,然後在下列運算式中設定文字方塊的 ControlSource 屬性:
=Sum([table_field])
此時, table_field 是包含你小計值的欄位名稱。 該欄位可位於資料表或查詢中。 Sum 函數計算所有 的 table_field總值。
程序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單,然後按一下捷徑功能表中的 [版面配置檢視] 或 [設計檢視]。
- 選取要輸入運算式的控制項。
- 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
- 要手動建立表達式,請在屬性表中的 Data 標籤中點選文字框中的 ControlSource 屬性,然後輸入
=,接著輸入表達式的其他部分。 例如,要計算上述子總,輸入=Sum([table_field]),並確保你將欄位名稱替換為table_field。 - 要 用表達式建構器建立表達式,請點擊屬性框中的 建構 按鈕
。
完成運算式之後,屬性工作表看起來像這樣:
使用運算式做為查詢準則
您可以在查詢中使用準則以縮小查詢結果。 當您輸入準則做為運算式,Access 就只會傳回符合運算式的資料列。
例如,假設您要查看出貨日期在 2017 年前三個月的所有訂單。 若要輸入準則,請在查詢中 [日期/時間] 資料行的 [準則] 儲存格內,輸入下列運算式。 這個範例會使用名為 ShippedDate 的 [日期/時間] 資料行。 若要定義日期範圍,請用這種方式輸入準則:
Between #1/1/2017# And #3/31/2017#
ShippedDate 資料行會與下圖所示類似。
對於 Orders 資料表的每一筆記錄而言,如果 ShippedDate 資料行中的值在您指定的日期範圍內,則在查詢輸出中將會包含該記錄。 請注意,在表達式中,你用 (#) 的符號包圍日期。 Access 會將井字號括住的值視為「日期/時間」資料類型。 將這些值當做日期/時間資料處理,可讓您對這些值進行計算,例如將日期相減。
程序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的查詢,然後按一下捷徑功能表中的 [設計檢視]。
- 按一下要輸入準則的資料行中的 [準則] 儲存格。
- 若要手動建立您的運算式,請輸入準則運算式。 不要在條件表達式之前加上
=運算子。 - 要 用表達式建構器建立你的表達式,在功能區點選 「設計」,然後在 查詢設定 群組中點選 建構
。
如果需要更大的空間編輯運算式,請將游標放在 [準則] 儲存格,然後按下 SHIFT+F2 以顯示 [放大顯示] 方塊:
提示 要讓文字更易讀,請選擇 字型。
在查詢中建立導出欄位
假設你在設計一個查詢,想用查詢中的其他欄位來顯示計算結果。 若要建立導出欄位,您可以在查詢之 [欄位] 列的空白儲存格中輸入運算式。 例如,如果查詢包含 Quantity 欄位和 Unit Price 欄位,您可將兩個欄位相乘以建立 Extended Price 導出欄位 (方法是在查詢的 [欄位] 列中輸入下列運算式):
Extended Price: [Quantity] * [Unit Price]
在表達式前,新 Extended Price: 欄位名稱為 「延伸價格」。 此名稱通常稱為「別名」。 如果你沒有提供別名,Access 會建立一個別名,例如 Expr1.
當您執行查詢時,Access 就會在每一列上執行計算,如下圖所示:
程序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的查詢,然後按一下捷徑功能表中的 [設計檢視]。
- 按一下要建立導出欄位的資料行中的 [欄位] 儲存格。
- 若要手動建立自己的運算式,請輸入運算式。
不要在條件表達前加上=運算子;相反地,請以描述性標籤開頭,接著冒號。 例如,輸入Extended Price:以提供一個表示式的標籤,該表達式會產生一個稱為 Extended Price 的計算欄位。 接著,在冒號後面輸入運算式的準則。 - 若要使用運算式建立器建立您的運算式,請在功能區上,按一下 [設計],然後按一下 [查詢設定] 群組中的 [建立器]。
在資料表中建立導出欄位
在 Access 中,您可以在資料表中建立導出欄位。 如此就不需要個別查詢以執行計算。 例如,如果資料表依序列出每個項目的數量、價格和營業稅,您就可以新增顯示總價的導出欄位,如下所示:
[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))
計算不能包含其他資料表或查詢的欄位,且計算的結果為唯讀。
程序
在 [功能窗格] 中,按兩下資料表加以開啟。
水平捲動至資料表最右邊的欄,然後按一下 [按一下以新增] 欄標題。
在顯示的清單中,按一下 [導出欄位],然後按一下要用於結果的資料類型。 存取時會顯示表達式建構器。
輸入要用於此欄位的計算,例如:
[Quantity] * [Unit Price]對於計算過的域,表達式開頭不要等號 (=) 。
按一下 [確定]。
Access 隨即新增導出欄位,然後醒目提示欄位標題,以供您輸入欄位名稱。輸入導出欄位的名稱,然後按 ENTER。
設定資料表欄位的預設值
您可以使用運算式為資料表中的欄位指定預設值;除非另行提供值,否則 Access 會針對新記錄使用該預設值。 例如,假設您想要只要有人新增記錄,就會自動將日期和時間插入名為「訂單日期」的欄位。 若要這麼做,您可以使用下列運算式:
Now()
程序
- 在 [功能窗格] 中,按兩下要變更的資料表。
Access 會在 [資料工作表檢視] 中開啟資料表。 - 選取要變更的欄位。
- 在色帶上點選「 表格欄位」,在 屬性 群組中點選 「預設值」。 存取時會顯示表達式建構器。
- 在方框輸入你的表達式,確保以等號開頭, (=) 。
注意:如果您將控制項繫結至資料表欄位,而控制項和資料表欄位都有預設值,則控制項的預設值會優先於資料表欄位。
設定控制項的預設值
另一個常使用運算式的位置是控制項的 [預設值] 屬性。 控制項的 [預設值] 屬性就像是資料表欄位的 [預設值] 屬性。 例如,若要使用目前的日期做為文字方塊的預設值,您可以使用下列運算式:
Date()
這個運算式會使用 Date 函數傳回目前的日期,但不會傳回時間。 若是您將文字方塊繫結至資料表欄位,而欄位也有預設值,則控制項的預設值會優先於資料表欄位。 設定資料表欄位的 [預設值] 屬性是較合適的做法。 如此一來,如果您以相同資料表欄位做為不同表單之數個控制項的基礎,則會在每個控制項套用相同的預設值,以協助確認每個表單上的資料輸入一致。
程序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視] 或 [版面配置檢視]。
- 選取要變更的控制項。
- 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
- 按一下屬性表上的 [全部] 索引標籤,然後按一下 [預設值] 屬性方塊。
- 輸入表達式,或點擊屬性框中的「建置
,使用表達式建構器建立表達式。
新增驗證規則至資料表欄位或記錄
表達式對於驗證資料輸入資料庫時非常有用——能防止錯誤資料被排除在外。在資料表中,有兩種驗證規則:欄位驗證規則 (防止使用者在單一欄位) 輸入錯誤資料;以及紀錄驗證規則 (防止使用者建立不符合驗證規則) 的紀錄。 您針對這兩種驗證規則使用運算式。
例如,假設您有一個名為 Inventory 的資料表,其中有個欄位名為 Units On Hand ,而現在您要設定規則,讓使用者只能輸入大於或等於零的值。 也就是說,庫存不能是負數。 如果要這麼做,您可以使用下列運算式做為 Units On Hand 欄位的欄位驗證規則:
>=0
程序:輸入欄位或記錄驗證規則
在 [功能窗格] 中,按兩下要變更的資料表。 Access 會在資料工作表檢視中開啟資料表。
如果是欄位的驗證規則,請選取要變更的欄位。
在功能區點選「表格欄位」,然後在欄位驗證群組中點選「驗證」,接著點選欄位驗證規則或驗證規則。 存取時會顯示表達式建構器。
開始輸入您所要的準則。 例如,如果欄位驗證規則要求所有的值要大於或等於零,請輸入下列內容:
>=0請不要在運算式前面加上等號 (=)。
驗證規則表達式是布林運算式,意即對任意輸入值皆為TrueFalse或。 驗證規則必須針對 True 該值,否則 Access 不會儲存輸入,而是顯示錯誤的驗證訊息。 在此範例中,若您輸入的手 頭單位 欄位值小於零,驗證規則為 False,Access 不接受該值。 如果您尚未輸入下節所述的驗證訊息,Access 便會顯示它自己的訊息,指出您所輸入的值已遭欄位的驗證規則禁止。
程序:輸入驗證訊息
若要讓資料庫更容易使用,您可以輸入自訂驗證訊息。 這些自訂訊息會取代 Access 在資料不符合驗證規則時所顯示的一般訊息。 您可以使用自訂驗證訊息來提供特定資訊,協助使用者輸入正確的資料,例如「庫存數量值不可為負數」。
- 在 [功能窗格] 中,按兩下要變更的資料表。
Access 會在 [資料工作表檢視] 中開啟資料表。 - 如果是欄位驗證訊息,請選取要新增驗證規則的欄位。
- 在功能區點選「表格欄位」,然後在「欄位驗證」群組中點選「驗證」,接著點選欄位驗證訊息或驗證訊息。
- 在 [輸入驗證訊息] 對話方塊中,輸入您要在資料與驗證規則不相符時顯示的訊息,然後按一下 [確定]。
新增驗證規則至控制項
除了資料表欄位及記錄以外,控制項還有可接受運算式的 [驗證規則] 屬性。 例如,假設您使用表單輸入報表的日期範圍,而且想確定開始日期不會早於 2017/1/1。 你可以將輸入開始日期的文字框的 驗證規則 與 驗證文字 屬性設定如下:
| 屬性 | 設定 |
|---|---|
| 驗證規則 | >=#1/1/2017# |
| 驗證文字 | 您無法輸入早於 2017/1/1 的日期。 |
如果你嘗試輸入早於 2017 年 1/1 日的日期,會跳出訊息,並在 驗證文字 屬性中顯示該文字。 若在驗證 文字 屬性框中未輸入文字,存取會顯示一般訊息。 按一下 [確定] 之後,Access 會返回文字方塊。
無論在何處修改資料表欄位,只要針對該欄位設定驗證規則,就會在整個資料庫中強制執行規則。 或者,如果針對表單上的控制項設定驗證規則,則只有當使用該表單時才會強制執行規則。 如果想要針對不同的使用者建立不同的驗證規則,則可以分別針對資料表欄位及表單上的控制項設定驗證規則。
程序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視] 或 [版面配置檢視]。
- 以滑鼠右鍵按一下要變更的控制項,然後按一下捷徑功能表中的 [屬性]。 Access 會顯示控制項的屬性表。
- 按一下 [全部] 索引標籤,然後按一下 [驗證規則] 屬性方塊。
- 輸入表達式,或點擊屬性框中的「建置
,使用表達式建構器建立表達式。
不要在表達式前面加上 = 運算子。 - 若要自訂使用者輸入與驗證規則不相符的資料時要顯示的文字,請在 [驗證文字] 屬性中輸入所要文字。
將報表中的資料分組和排序
您可以使用 [群組、排序與合計] 窗格定義報表資料的群組層次和排序順序。 一般來說,您大部分都是針對從清單選取的欄位進行分組或排序。 不過,如果您要對計算值進行分組或排序,則可改成輸入運算式。
分組是組合包含重複值的欄的程序。 舉例來說,假設你的資料庫包含不同城市辦公室的銷售資訊,而資料庫中的一份報告名為「按城市銷售」。提供該報告資料的查詢會依照你的城市值來分組。 這種類型的分組可以使您的資訊更易於閱讀和理解。
相對地,排序則是強制將查詢結果中的列 (或記錄) 照順序排列。 例如,您可以依主索引鍵值 (或其他欄位中的另一組值) 遞增或遞減排序記錄,或是依一個或多個字元照指定的順序 (例如字母順序) 排序。
程序:將群組和排序加入報表
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視] 或 [設計檢視]。
- 在功能區點選 「報表設計」,在「 群組 & 總計」 群組中點選 「群組 & 排序」。 [群組、排序與合計] 窗格會出現在報表下方。
- 若要將群組層次新增到報表,請按一下 [新增群組]。
- 若要將排序順序新增到報表,請按一下 [新增排序]。
新的群組層次或排序順序,以及提供報表資料的欄位清單都會顯示在窗格中。 此圖顯示典型的新群組層次 (依類別分組) 和排序順序 (依製造商排序),以及群組和排序可用欄位的清單:
- 在可用欄位的清單底下,按一下 [運算式] 以開始使用運算式建立器。
- 在運算式建立器的運算式方塊 (上面的方塊) 中輸入要使用的運算式。 確保你用等 (
=的) 運算子開頭。
程序:將運算式新增到現有群組或排序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視] 或 [設計檢視]。
- 按一下要變更的群組層次或排序順序。
- 按一下 [群組對象] (針對群組層次) 或 [排序方式] (針對排序順序) 旁的向下鍵。 包含可用欄位的清單隨即出現。
- 在包含欄位的清單底部,按一下 [運算式] 以開始使用運算式建立器。
- 在運算式建立器的運算式方塊 (上面的方塊) 中輸入運算式。 請確保你的表達式以相等的 (=) 運算子開頭。
控制要執行哪些巨集指令
在某些情況下,建議您只在特定條件成立時,才執行巨集中的某個巨集指令或一連串巨集指令。 例如,假設您只要在文字方塊中的值大於或等於 10 時才執行巨集指令。 若要設定此規則,您可以在巨集的 [If] 區塊中使用運算式,即可在巨集中定義條件。
在這個範例中,假設文字方塊名為 "Items",則設定條件的運算式為:
[Items]>=10
程序
- 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的巨集,然後按一下捷徑功能表中的 [設計檢視]。
- 按一下要修改的 [If] 區塊,或是從 [巨集指令目錄] 窗格中新增 [If] 區塊。
- 按一下 [If] 區塊的最上面一行。
- 請在該框輸入你的條件表達式,或點擊表達式框旁的 「建置 按鈕
,開始 使用表達式建構器。
你輸入的表達式必須是布林,也就是要麼TrueFalse是。
If 區塊內的巨集動作僅在條件為 True時執行。