運算式簡介

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

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

本文內容

運算式概觀

為何要使用運算式?

Access 運算式與 Excel 公式的比較

運算式的組成部分

運算式範例

運算式概觀

運算式是由下列部分或全部項目組合而成:內建或使用者定義的函數程序、識別項、運算子和評估為單一值的常數。

運算式的組成

例如,以下運算式中四個部分全部都有:

=Sum([購買價格])*0.08

在此範例中, Sum() 是內建函數, [購買價格] 是識別項, * 是數學運算子,而 0.08 是常數。這個運算式可以用於表單尾或報表尾的文字方塊中,以計算一組產品的營業稅。

運算式可能會比這個運算式複雜得多,也可能會簡單得多。例如,布林值運算式只包含一個運算子和一個常數:

>0

這個運算式會在與大於 0 的數字比較時,傳回 True,而在與小於 0 的數字比較時,傳回 False。您可以在控制項或資料表欄位的 [驗證規則] 屬性中使用這個運算式,以確保只輸入正數值。

在 Access 中,運算式可以用在很多地方,以執行計算、操控字元,或測試資料。資料表、查詢、表單、報表和巨集都有接受運算式的屬性。例如,您可以在控制項的 [控制項來源] 和 [預設值] 屬性中,使用運算式,您也可以在資料表欄位的 [驗證規則] 屬性中,使用運算式。此外,當您為事件程序或模組撰寫 Microsoft Visual Basic for Applications (VBA) 程式碼時,通常可以使用與在 Access 物件 (例如,資料表或查詢) 中使用之運算式類似的運算式。

附註: 如需有關運算式組成部分的詳細資訊,請參閱本文下文中的運算式的組成部分一節。

頁首

為何要使用運算式?

在 Access 中,您可以使用運算式來執行下列任何一項作業:

  • 計算值不直接存在資料中。您可以計算在欄位中、表格中和查詢中的值,還可以計算表單和報表上,控制項中的值。

  • 設定表單或報表上資料表欄位或控制項的預設值,只要您開啟資料表、表單或報表時,就會出現這些預設值。

  • 建立驗證規則。驗證規則控制使用者可以輸入欄位或控制項中的值。

  • 指定查詢的準則。

在 Access 中,使用運算式其中一種最常見的方式就是,計算不是直接存在於您資料中的值。例如,您可以在表格或查詢中建立欄,以計算產品線項目合計,然後在表單或報表中使用該值。從這類計算所產生之表格或查詢中的欄,稱為計算欄位。例如,下列查詢中的運算式會以適用的折扣來計算產品線項目合計:

ExtendedPrice : CCur ([訂單詳細資料].[單價]*[數量]*(1-[折扣])/100)*100

這個運算式會將產生的欄或計算欄位命名為 ExtendedPrice

只要您必須執行兩個或以上資料表欄位的資料計算或操作,就可以建立計算欄位。例如,許多資料表都將名字和姓氏分別儲存在不同的欄位中,如果您要組合名字和姓氏,然後顯示在單一欄位中,就可以在表格或查詢中建立計算欄位。

合併名字和姓氏的計算欄位看起來會像這樣: [名字] & " " & [姓氏]。在這裡,& 符號 (&) 會合併 [名字] 欄位中的值、一個空格字元 (以引號括住的空格) 以及 [姓氏] 欄位中的值。

您也可以在 Access 中使用運算式,為資料表中的欄位或是控制項提供預設值。例如,若要將日期欄位的預設值設定為目前日期,可以在 [預設值] 屬性方塊中,為該欄位輸入 Date()

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

最後,您可以使用運算式,為查詢設定準則。例如,假設您要查看某個時間範圍內出貨訂單的產品銷售量,您可以輸入準則以定義日期範圍,Access 就只傳回與準則相符的資料列。舉例來說,您的運算式可能會看起來如下:

之間 #1/1/20 11 #,#12/31/20 11 #

當您將準則加入查詢中,然後執行查詢時,只會傳回與指定日期相符的值。

頁首

Access 運算式與 Excel 函數的比較

Access 運算式與 Excel 函數很像,兩者都使用類似的元素來產生結果。Excel 函數和 Access 運算式都包含下列一個或多個項目:

  • 識別項    在 Excel 中,識別項是活頁簿中各個儲存格或儲存格範圍的名稱,如 A1B3:C6Sheet2!C32。在 Access 中,識別項是資料表欄位的名稱 (如 [連絡人]![名字])、表單或報表上的控制項 (如 Forms![工作清單]![描述]),或這些欄位或控制項的屬性 (如 Forms![工作清單]![描述].ColumnWidth)。

  • 運算子    在 Access 和 Excel 中,都使用運算子來比較值,或是在資料上執行簡單的計算。範例包括:+ (加) 或 - (減)。

  • 函數和引數    在 Access 和 Excel 中,都使用函數和引數來完成無法光使用運算子來執行的工作,例如,您可以計算欄位中多個值的平均值,或將計算結果轉換成貨幣格式。函數範例包括:SUMSTDEV。引數是提供資訊給函數的值。Access 和 Excel 都有很多函數可供選擇,但是程式中相似函數的名稱有時會有差異,例如,Excel 中的 AVERAGE 函數對應於 Access 中的 AVG 函數。

  • 常數    在 Access 和 Excel 中,常數都是不會變更的值,例如,不透過使用運算式來計算的文字字串或數字。

Access 運算式所使用的運算子和常數與 Excel 公式中所使用的相類似,但是 Access 運算式會使用不同的識別項和函數。而 Excel 公式一般只用在工作表儲存格,Access 運算式則在 Access 內許多地方使用,完成各式各樣的工作,其中包括如下:

  • 在表單和報表上建立計算控制項

  • 在報表和查詢中建立計算欄位

  • 做為查詢中的準則

  • 驗證正輸入表單上欄位或控制項的資料

  • 在報表中群組資料

您可以使用 Access 運算式或 Excel 函數,透過使用數學運算子來計算數值或日期/時間值。例如,若要為客戶計算折扣價,您可以使用 Excel 函數 =C2*(1-D2) 或 Access 運算式 = [單價]*(1-[折扣])

您也可以使用 Access 運算式或 Excel 函數,透過使用字串運算子來組合、分割字串,或進行其他字串操作。例如,若要將名字和姓氏組合成一個字串,可以使用 Excel 函數 =D3 & " " & D4 或 Access 運算式 = [名字] & " " & [姓氏]

頁首

運算式的組成部分

運算式可以包含識別字、運算子、函數和引數、常數,以及值。以下各節會更詳細說明這些組成部分。這些小節中的範例也會提供運算式所使用語法的簡短扼要說明。

識別項

識別項就是欄位、屬性或控制項的名稱。您可以在運算式中使用識別項來參照與欄位、屬性或控制項相關的值。以運算式 =[要貨日期]-[送貨日期] 為例,此運算式會從 [要貨日期] 欄位或控制項的值中減去 [送貨日期] 欄位或控制項的值。在此運算式中, [要貨日期] 和 [送貨日期] 都是識別項。

運算子

Access 支援各種不同的運算子,包括一般算術運算子,如 +-* (乘),和 / (除)。您也可以使用比較運算子,如 < (小於) 或 > (大於),來比較值;文字運算子,如 &+,來串聯 (結合) 文字;邏輯運算子,如 NotAnd,來決定是 true 或 false 值,還有其他特屬 Access 使用的運算子。

函數和引數

函數是可用於運算式中的內建程序。您使用函數進行各種不同的操作,如計算值、操控文字和日期,以及彙總資料。例如,一個經常使用的函數就是 Date,會傳回目前的日期。您可以各種不同方式來使用 Date 函數,如用於為資料表中欄位設定預設值的運算式中。在此範例中,只要有人加入新記錄,欄位的值就會預設為目前的日期。

有些函數需要引數。引數是提供輸入給函數的值。如果函數需要一個以上的引數,要以逗號來分隔引數。請看下列範例運算式中的 Date 函數:

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

這個範例使用兩個引數;第一個引數是 Date() 函數,會傳回目前的日期;第二個引數 ("mmmm d, yyyy"),是以逗號與第一個引數分隔,指定文字字串來指示 Format 函數,如何設定所傳回日期值的格式。請注意,此文字字串必須以引號括住。此運算式也說明,您經常可以使用由一個函數所傳回的值做為另一個函數的引數,在此範例中,Date() 就是做為引數使用。

您可以在「請參閱」一節中找到有關函數和運算式語法的詳細資訊連結。

常數

常數是在 Access 執行時不會變更其值的項目。TrueFalseNull 等常數經常使用於運算式中。您也可以用 VBA 程序中可以使用的 VBA 程式碼,自行定義常數。VBA 是 Access 所使用的程式設計語言。

附註: 您不能在運算式所使用的自訂函數中使用 VBA 常數。例如,VBA 有代表一週中星期幾的常數:vbSunday 代表星期日、vbMonday 代表星期一等等。這些常數每一個都有相對應的數值,例如:vbSunday 的數值是 1、vbMonday 是 2。從運算式內呼叫的自訂函數中不能使用這些常數,您必須改用數值。

您可以在運算式中使用常值,如數字 1,254 或字串「輸入介於 1 與 10 之間的數字」。您也可以使用數值,也就是一系列的數字,需要時可包含符號和小數點;若沒有符號,Access 會將數值假設為正值,若要將值變為負值,請加上減號 (-)。您也可以使用科學記號,此時請在數值中包含 "E" 或 "e",以及指數符號 (例如,1.0E-6)。

當您使用文字字串做為常數時,請用引號括住,以便確保 Access 正確解譯文字字串。在某些情況下,Access 會為您提供引號,例如,當您在運算式中輸入驗證規則或查詢準則的文字時,Access 便會自動用引號括住您的文字字串。

例如,如果您輸入文字「台北」,Access 便會在運算式中顯示「台北」。如果想要讓運算式產生實際上以引號括住的字串,可以使用單引號 (') 或是三組雙引號 ("),括住巢狀字串,例如,下列為相等的運算式:

Forms![連絡人]![城市]. DefaultValue = ' "台北" '

Forms![連絡人]![城市]. DefaultValue = " " "台北" " "

若要使用日期/時間值,請用井字號 (#) 括住該值,例如:#3-7-11#、#7-Mar-11# 和 #Mar-7-2011# 都是有效的日期/時間值。如果 Access 遇到以 # 字元括住的有效日期/時間值,就會自動將該值視為日期/時間資料類型處理。

頁首

運算式範例

下表列出一些範例 Access 運算式以及一般的使用方式:

運算式

目的

=[要貨日期]-[送貨日期]

計算報表上兩個文字方塊控制項中的日期值 (稱為 [要貨日期] 和 [送貨日期]) 之差

Date()

將 [日期/時間] 資料表欄位的值預設為目前的日期。

總價: CCur([訂貨明細].單價*[數量]*(1-[折扣])/100)*100

在查詢中建立名為 ExtendedPrice 的計算欄位。

Between #1/1/2011# And #12/31/2011#

指定查詢中 [日期/時間] 欄位的準則。

=[訂單子表單].Form!訂單小計

傳回 [訂單] 表單上,[訂單] 子表單中 [訂單小計] 控制項的值

>0

為資料表中的數值欄位設定驗證規則 - 使用者必須輸入大於零的值。

有些運算式以等於 (=) 運算子開始,其他運算子不用等於運算子開始。計算表單或報表上之控制項的值時,可以使用 = 運算子來開始運算式。在其他情況下,例如,在查詢中輸入運算式,或是在欄位或控制項的 DefaultValueValidationRule 屬性中輸入運算式時,就不使用 = 運算子,除非您是將運算式加入資料表中 [文字] 欄位。在某些情況下,例如將運算式加入查詢中時,Access 會自動移除 = 運算子。

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

這項資訊有幫助嗎?

太好了! 還有其他意見反應嗎?

我們應該如何改進?

感謝您的意見反應!

×