運算式簡介

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

您可以使用運算式在 Microsoft Office Access 2007 中執行各式各樣不同的工作,例如,執行數學計算、組合或抽取文字,或驗證資料。本文提供有關運算式的背景資訊:包括,使用運算式的時機、與 Microsoft Office Excel 函數的比較,以及運算式的組成部分。

本文內容

運算式概觀

為何要使用運算式?

Access 運算式與 Excel 函數的比較

運算式的組成部分

運算式範例

運算式概觀

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

提示: 在 Access 2010 中,[運算式建立器具有 IntelliSense,讓您可以看到您的運算式所需要的引數。

運算式的組成

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

= 加總 ( [購買價格]) * 0.08

在此範例中,加總 (內建函數、 [購買價格]是識別項、 *是數學運算子,而0.08是常數。這個運算式可以在頁尾表單或報表尾的文字中用來計算營業稅群組的項目。

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

>0

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

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

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

頁首

為何要使用運算式?

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

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

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

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

  • 指定查詢的準則。

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

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

這個運算式會將所產生的欄或計算欄位命名為 [總價]。

您不能建立會自動計算本身值的資料表欄位。需要時,您可以使用資料表欄位來儲存在別處 (例如,查詢或表單中) 完成的計算結果,但是,除非有明確的理由要儲存此值,最有效率的做法是,僅儲存執行計算時所需的值,然後在需要時計算結果。

例如,假設您必須計算發票中產品線項目的金額總數。您不必在資料庫中儲存產品線項目合計,而可以視需要從您儲存在資料庫中的其他兩個項目,亦即數量和價格,進行計算。在發票報表上的文字方塊控制項中,使用以下運算式來計算值:

= CCur ( [Quantity]*[Price])

此運算式會將數量乘以價格,然後使用轉換成貨幣 (CCur) 函數,將結果轉換成 Currency 資料類型。您也可以計算每份訂單的折扣。

只要您必須執行兩個或以上資料表欄位的資料計算或操作,就可以建立計算欄位。例如,許多資料表都將名字和姓氏分別儲存在不同的欄位中,如果您要組合名字和姓氏,然後顯示在單一欄位中,就可以在查詢中建立計算欄位。上文已提及,直接在資料表中建立這種類型的計算欄位似乎很合理,但是資料表並不支援這種類型的操作,資料表並不提供可加入必要運算式的欄位或屬性。

結合名字和姓氏的導出的欄位會看起來像這樣 ︰ [名字] &"「 & [姓氏]。在此案例中,連字號 (&) 合併 [名字] 欄位、 空格字元 (用引號括住一個空格) 及 [姓氏]欄位中的值中的值。

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

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

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

between #1/1/2007年 # 2007 / #12/31 #

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

頁首

Access 運算式與 Excel 函數的比較

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

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

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

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

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

Access 運算式所使用的運算子和常數與 Excel 函數中所使用的相類似,但是 Access 運算式會使用不同的識別字和函數。您只能在一個位置使用 Excel 函數,但是您可以在多個位置使用運算式來完成各種不同的工作,包括下列各項:

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

  • 在查詢中建立計算欄位

  • 做為查詢中的準則

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

  • 在報表中群組資料

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

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

頁首

運算式的組成部分

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

識別字

識別項是欄位、 屬性或控制項的名稱。您使用的識別碼在運算式中參照的欄位、 屬性或控制項相關聯的值。例如,請考慮運算式= [要求]-[出貨日期]。此運算式減去出貨日期欄位或控制項日期] 欄位或控制項的值中的值。在此運算式中,要求] 與 [出貨日期做為識別碼。

運算子

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

函數和引數

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

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

= 格式 ( date (),「 mmmm d, yyyy 」)

此範例使用兩個引數。第一個引數是日期 (函數,傳回目前的日期。第二個引數 ("mmmm d,yyyy"),這從第一個引數並以逗號,指定要指示Format函數如何設定傳回的日期值的格式的文字字串。請注意必須以引號括住的文字字串。此運算式也會說明您通常可以使用另一個函數傳回一個函數做為引數的值。在此情況下,日期 (做為引數。

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

常數

常數是在 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 便會在運算式中顯示「台北」。如果想要讓運算式產生實際上以引號括住的字串,可以使用單引號 (') 或是三組雙引號 ("),括住巢狀字串,例如,下列為相等的運算式:

表單 ![ 連絡人] ![城市]。 [預設值 = '"巴黎"'

表單 ![ 連絡人] ![城市]。 [預設值 = " " "Paris" " "

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

頁首

運算式範例

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

運算式

目的

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

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

Date()

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

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

在查詢中建立名為 [總價] 的計算欄位。

Between #1/1/2007# And #12/31/2007#

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

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

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

>0

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

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

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×