運算式簡介

您可以在 Microsoft Access 中用運算式進行多種工作,像是進行數學計算、合併或擷取文字,或是驗證資料。本文提供運算式的概觀資訊,包括使用時機、其組成部分,以及與 Microsoft Excel 公式的相互比較等等。

本文內容

運算式概觀

使用運算式的方式

運算式的範例

運算式的組成

比較 Access 運算式和 Excel 公式

運算式概觀

您可以將這想像成:若要 Access 執行某項工作,您就必須使用它的語言。舉例來說,假設您想要告訴 Access:「查看 Customers 資料表的 BirthDate 欄位,並告訴我客戶出生的年份。」那麼您可以將運算式寫成:

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

這個運算式由 DatePart 函數及 "yyyy"[Customers]![BirthDate] 這兩個引數值所組成。

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

運算式範例

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

2 interval 引數會告訴 Access 要傳回日期的哪個部分,在這個例子中,"yyyy" 告訴 Access 您只想要傳回日期中的年份。

3 date 引數會告訴 Access 要找的是哪裡的日期值,在這個例子中,[Customers]![BirthDate] 告訴 Access 要尋找 Customers 資料表 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] 運算式為例。這個運算式會將 RequiredDate 欄位或控制項的值減去 ShippedDate 欄位或控制項的值。在這個運算式中,RequiredDateShippedDate 都做為識別碼。

運算子

Access 支援多種運算子,包括常見的算術運算子,例如 +-* (乘) 和 / (除)。您也可以使用 < (小於) 或 > (大於) 等比較運算子來比較值、使用 &+ 等文字運算子來串連 (合併) 文字、使用 NotAnd 等邏輯運算子來判斷 True 或 False 值,以及使用其他 Access 特有的運算子。

函數

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

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

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

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

  • 第一個引數是 Date() 函數,會傳回目前的日期。沒有引數時,您仍然需要加入函數括號。

  • 第二個引數 "mmmm d, yyyy" (和第一個引數之間以逗號分隔) 則能指定文字字串,以指示 FORMAT 函數如何設定傳回日期值的格式。請注意,文字字串必須以引號括住。

這個運算式也說明,您通常可將某個函數傳回的值做為引數,將它巢狀放入另一個函數中。在這個例子中, 做為引數的是 Date()

常數

常數是 Access 執行時值不會變動的項目。TrueFalseNull 等常數經常用於運算式。

您可以在運算式中使用常值,例如數字 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]

頁面頂端

請參閱

使用運算式建立器

建立運算式

運算式語法指南

運算式的範例

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×