Applies ToAccess for Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013

您可以在 Microsoft Access 中用運算式進行多種工作,像是進行數學計算、合併或擷取文字,或是驗證資料。 本文提供運算式的概觀資訊,包括使用時機、其組成部分,以及與 Microsoft 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 或字串 "Enter a number between 1 and 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]

頁面頂端

使用運算式建立器 (機器翻譯)

建立運算式 (機器翻譯)

運算式語法指南

運算式的範例

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。