運算式簡介

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

你可以在 Microsoft Access 中使用表達式執行各種任務,例如進行數學計算、合併或擷取文字,或驗證資料。 本文提供關於表達式的概述資訊——何時使用它們、它們的組成部分是什麼,以及它們與 Microsoft Excel 公式的比較。

本文內容

運算式概觀

您可以將這想像成:若要 Access 執行某項工作,您就必須使用它的語言。 舉例來說,假設你想告訴 Access「請查看 Customers 表格中的出生日期欄位,告訴我客戶的出生年份。」你可以將此表達式寫成:

DatePart("yyyy",[Customers]![BirthDate])

此表達式包含 DatePart 函數及兩個參數值: "yyyy"[Customers]![BirthDate]

現在就讓我們更詳細地解析這個運算式。

運算式範例

1 DatePart 是一個檢查日期並回傳特定部分的函式。 這個例子用了前兩個引數。

2 區間參數告訴 Access 要回傳日期的哪一部分——在此例中,告訴 "yyyy" Access 你只想要回傳日期的年份部分。

3 日期參數告訴 Access 該在哪裡尋找日期值——在此例中,[Customers]![BirthDate] 告訴 Access 在客戶資料表的 BirthDate 欄位中尋找日期。

使用運算式的方式

您可以透過下列方式使用運算式:

  • 計算值:計算並非直接存在資料中的值。 您可以計算資料表中的欄位和查詢中的值,也可以計算表單和報表上控制項中的值。
  • 定義預設值:為資料表欄位或是表單或報表上的控制項定義預設值。 每當您開啟資料表、表單或報表時,就會顯示這些預設值。
  • 建立驗證規則:建立驗證規則以控制使用者可以在欄位或控制項中輸入的值。
  • 定義查詢準則:定義查詢準則以將結果限制為想要的子集。

計算值

在 Access 中,運算式最常見的使用方式之一是計算不直接位於您資料中的值。 資料表或查詢中的資料行,是透過計算所得的結果,就稱為「導出欄位」。 您可以建立合併兩個或多個資料表欄位的導出欄位。 例如,許多資料表將名字與姓氏儲存在兩個不同的欄位中。 如果您想要合併名字和姓氏,然後將它們顯示在單一欄位中,您可以在資料表或查詢中建立導出欄位:

[FirstName] & " " & [LastName].

在這種情況下, (& 的&符號) 結合了欄位中的 FirstName 值、一個 () 引號包圍的空間字元,以及欄位中的 LastName 值。

定義預設值

您也可以用 Access 運算式為資料表欄位或控制項提供預設值。 例如,要將某個日期欄位的預設值設為當前日期,在該欄位的 預設值 屬性框中,你可以輸入:

Date()

建立驗證規則

此外,您也可以使用運算式設定驗證規則。 例如,您可以在控制項或資料表欄位中使用驗證規則,要求輸入的日期大於或等於目前日期。 在這種情況下,您會將 [驗證規則] 屬性方塊中的值設定為:

>= Date()

定義查詢準則

最後,您可以用運算式來設定查詢的準則。 例如,假設您想查看某段時間內出貨的訂單產品銷售情形。 您可以輸入準則來定義日期範圍,Access 只會傳回符合準則的列。 例如,運算式可能看起來會像這樣:

Between #1/1/2017# And #12/31/2017# 

當您將準則新增到查詢中,接著執行查詢時,只會傳回符合指定日期的值。

運算式的範例

下表列出一些 Access 運算式的範例,以及它們的常見使用方式:

運算式 目的
=[RequiredDate]-[ShippedDate] 計算報表上兩個文字方塊控制項 (名稱為 RequiredDate 和 ShippedDate) 中日期值之間的差異。
Date() 將 [日期/時間] 資料表欄位的預設值設為目前日期。
Between #1/1/2017# And #12/31/2017# 指定查詢中 [日期/時間] 欄位的準則。
=[Orders Subform].Form!OrderSubtotal 傳回訂單表單之訂單子表單上 OrderSubtotal 控制項的值。
>0 為資料表中的數值欄位設定驗證規則 - 使用者必須輸入大於零的值。

有些表達式以等 (=) 運算子開頭,有些則不是。 當你在表單或報告中計算控制值時,你會使用 = 運算子來開始運算式。 在其他情況下,例如你在查詢中輸入表達式,或在欄位或控制項的 DefaultValueValidationRule 屬性中輸入表達式時,除非你將表達式加入表格中的文字欄位,否則不會使用運算 = 子。 在某些情況下,例如你在查詢中加入表達式時,Access 會自動移除運算子 =

運算式的組成

運算式包含數個您可單獨或合併使用以產生結果的可能元素。 這些元素包括:

  • 識別碼:表單或報表的資料表欄位或控制項的名稱,或是這類欄位或控制項的屬性。
  • 營運商 例如, (+ 加) 或 - (減) 。
  • 職能 例如,SUM或AVG。
  • 常數:即不會變更的值,例如運算式不會計算的文字字串或數字。
  • 價值觀 字串,例如「輸入介於1到10之間的數字。」或數字,例如1,254,用於運算。

下列各節將詳細說明這些元素。

識別碼

識別碼就是欄位、屬性或控制項的名稱。 您可以在運算式中使用識別碼來參照與欄位、屬性或控制項相關的值。 例如,考慮表達 =[RequiredDate]-[ShippedDate]式 。 此表達式從場或控制值減去場或控制的值ShippedDateRequiredDate。 在此表達式中,兩者RequiredDateShippedDate皆作為識別符號。

運算子

Access 支援多種運算子,包括常見的算術運算子,如 +、 、 - (* 乘) 和 / (除) 。 你也可以使用比較運算子,如 < 小於 () 或 > 大於 () 來比較數值,文字運算子如 &+ 用於串接 (合併文字) ,邏輯運算 Not 子如 和 And 來判定真假值,以及其他專屬於 Access 的運算子。

函數

函數是可用於運算式的內建程序。 您可以在多種作業中使用函數,例如計算值、處理文字和日期,以及摘要資料。 例如,常用的函數之一包括 DATE,此函數會傳回目前日期。 使用 DATE 函數的方式有很多,例如用於為資料表欄位設定預設值的運算式。 在這個範例中,每當有人新增記錄時,根據預設,欄位值就會設定為目前的日期。

有些函數需要引數。 引數就是為函數提供輸入內容的值。 如果函數需要一個以上的引數,請以逗號分隔引數。 例如,我們可以參考下列範例運算式中的 DATE 函數:

=Format(Date(),"mmmm d, yyyy")

這個範例使用了兩個引數:

  • 第一個參數是 Date() 函數,回傳當前日期。 沒有引數時,您仍然需要加入函數括號。
  • 第二個參數 "mmmm d, yyyy"與第一個參數以逗號分隔,指定一個文字字串,指示 FORMAT 函式如何格式化回傳的日期值。 請注意,文字字串必須以引號括住。

這個運算式也說明,您通常可將某個函數傳回的值做為引數,將它巢狀放入另一個函數中。 在這種情況下,作為 Date() 一個論點。

常數

常數是 Access 執行時值不會變動的項目。 True這些 、 FalseNull 常數經常用於表達式中。

您可以在運算式中使用常值,例如數字 1,254 或字串「輸入一個 1 到 10 之間的數字」。您也可以使用數值,數值可以是包含正負號和小數點 (如有需要) 的一串數字。

當您使用文字字串值時,請用引號括住,Access 才更能正確地解譯。 在某些情況下,Access 會為您加上引號。 例如,當您在驗證規則或查詢準則運算式中輸入文字時,Access 會自動為您的文字字串加上引號。

使用日期/時間值時,請用磅號 (#) 。 例如, #3-7-17#, #7-Mar-17##Mar-7-2017# 都是有效的日期/時間值。 當 Access 遇到用 # 字元括住的有效日期/時間值時,會自動將值視為「日期/時間」資料類型。

頁面頂端

比較 Access 運算式和 Excel 公式

Access 運算式與 Excel 公式的近似之處在於兩者使用相仿的元素產生結果。 Excel 公式和 Access 運算式都包含下列一或多個項目:

  • 識別碼 在 Excel 中,識別碼是工作簿中各個儲存格或儲存格範圍的名稱,例如 A1、B3:C6 或 Sheet2!C32。 在 Access 中,識別碼是表單欄位的名稱, (如 [Contacts]![First Name]) 、表單或報告上的控制項 (如 Forms![Task List]![Description]) ,或這些欄位或控制項 (的屬性,如 Forms![Task List]![Description].ColumnWidth) 。
  • 營運商 在 Access 和 Excel 中,運算子都用於比較數值或對資料進行簡單計算。 例如 + (加) 或 - (減) 。
  • 職能 在 Access 和 Excel 中,函式和參數都用來完成單靠運算子無法完成的任務——例如,你可以找到欄位中數值的平均值,或將計算結果轉換成貨幣格式。 函數的範例包括 SUM 和 STDEV。 引數是提供函數資訊的值。 請注意,Access 和 Excel 都有許多函數可供選擇,但程式中類似函數的名稱有時候會有所不同。 例如,Excel 中的 AVERAGE 函數等同於 Access 中的 AVG 函數。
  • 常數:在 Access 和 Excel 中,常數是不會變的值 - 例如並非使用運算式計算出來的數字。
  • 價值觀 在 Access 和 Excel 中,數值的使用方式相似。

Access 運算式所使用的運算子和常數與 Excel 公式很相似,但 Access 運算式使用不同的識別碼和函數。 Excel 公式通常只會在工作表儲存格中派上用場,而 Access 運算式在 Access 中則常會用來進行多種工作,包括下列各項工作:

  • 在表單和報表上建立計算控制項
  • 在資料表和查詢中建立導出欄位
  • 做為查詢中的準則
  • 驗證輸入欄位或表單控制項的資料
  • 在報表中群組資料

利用數學運算子,您就可以用 Access 運算式或 Excel 公式來計算數字或日期/時間的值。 例如,要計算客戶的折扣價格,可以使用 Excel 公式 =C2* (1-D2) 或 Access 表達式 = [Unit Price]*(1-[Discount])

您也可以使用字串運算子,透過 Access 運算式或 Excel 公式來合併、分割或以其他方式操作字串。 例如,要將名字和姓氏合併成一個字串,你可以使用 Excel 公式 =D3 & “” & D4 或 Access 表達式 = [First Name] & " " & [Last Name]

頁面頂端

使用運算式建立器 (機器翻譯)建立運算式 (機器翻譯)運算式語法指南運算式的範例