Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

您可以在 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?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×