建立運算式

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

建立 Access 資料庫中的運算式,選取的物件或屬性您要使用的運算式,然後按下 Ctrl + F2 – 這會開啟 [運算式建立器,包含許多部分內建的運算式,以節省時間,以儲存您順利的內建協助工具。您可以使用運算式資料 – 執行各種動作,例如決定幾天有自從推出順序,或將名字與姓氏結合成全名。如果您有 Excel 的人,請將運算式視為公式的 Access 版本。

在 Access web 應用程式和桌面資料庫中的一些運算式不運作方式相同。本文中的所有項目適用於 web 應用程式和資料庫,除了美金的位置。如需有關 Access web 應用程式的詳細資訊,請參閱建立 Access 應用程式

如需有關運算式何時使用及如何建立這些閱讀。

本文內容

運算式概觀

使用運算式建立器

計算表單和報表上控制項的值

使用運算式作為查詢準則

在查詢中建立的導出的欄位

在資料表中建立的導出的欄位

新增驗證規則至資料表欄位或記錄

新增驗證規則至控制項

設定資料表欄位的預設值

設定控制項的預設值

控制要執行哪些巨集動作

在報表中的資料分組和排序

運算式概觀

還記得數學課上過的方程式嗎? 例如x2+z = (2y-1)/7,請解出 x」這類的內容? 您可能也還記得方程式是現代工程的基礎:如果要建立實體物件,您可以用方程式來回答「支撐樓梯井需要多厚的螺栓?」之類的特定問題;這就是運算式,只不過您得將 xyz 改成 [單價][折扣][數量]。此外,運算式不只是數學運算,您還可以針對文字資料進行各式各樣的處理。

您可以針對運算式進行的處理

以下從可以用運算式進行的諸多處理中列出幾個常見範例。

  • 計算年齡

  • 將名字和姓氏放在一起

  • 為變更的記錄標示變更的日期和時間

  • 指定資料輸入必須符合的樣式

  • 裁剪一行文字任一端的字元

技術概觀

附註:  您無需閱讀此章節即可學會建置運算式,但其中的內容可讓您更加瞭解運算式的運作方式,而且文中使用的技術詞彙可協助您在其他進階技術網站 (例如 MSDN) 上尋找相關資訊。

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

運算式的組成。

例如,以下運算式包含所有四個組成元素:

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

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

運算式可能會比這個範例複雜得多,也可能會簡單得多。例如,這個布林值運算式 (運算式的結果必須是 TrueFalse) 只包含一個運算子和一個常數:

>0

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

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

頁面頂端

使用運算式建立器

運算式建立器具有下列優點:

  • 您可以輕鬆地查詢及插入函數、運算子、常數和識別項 (例如欄位、資料表、表單和查詢的名稱) 以節省時間並減少錯誤。

  • 運算式建立器會根據運算式相關內容來限制可用的運算式部分。

  • 您可以選擇各種不同的現成運算式 (如頁碼、目前日期或目前的日期和時間)。

  • 運算式建立器提供 IntelliSense 功能,因此您不必記住運算式的所有必要引數。

  • 運算式建立器中的說明隨手可及,您只要按一下出現在 [快速資訊] 中的工具連結即可。

啟動運算式建立器 :

啟動運算式建立器的鍵盤快速鍵是 Ctrl + F2。當您第一次使用這個快速鍵時,快速鍵會啟動 [選擇建立器] 對話方塊,您只要按兩下對話方塊中的 [運算式建立器] 即可繼續。

請參閱的詳細資訊,瞭解如何使用運算式建立器

在 web 資料庫中的運算式的巢狀限制是 65

運算式巢狀深度不適用於瀏覽器中,因此您不應使用任何這類運算式 Access web 資料庫中的多個 65 層級。您不會收到任何錯誤訊息-運算式就無法運作。

重要: 使用 &ANDOR 運算子可以在伺服器上建立不會反映到 Access 用戶端的其他巢狀層級。例如,運算式 "a" & "b" & "c" 在運算式建立器中不是巢狀結構,但是在 SharePoint 中,該運算式會變成 concatenate.Db("a", concatenate.Db("b", "c") )。這項轉譯會建立一個層級的巢狀結構。如果在單一運算式中使用許多連續的 &ANDOR 運算子,便可能會超過 65 個層級的伺服器巢狀限制,因而導致運算式無法在瀏覽器中運作。

頁面頂端

計算表單和報表上控制項的值

當您使用運算式作為控制項的資料來源時,可以建立計算控制項。例如,假設您的報表可以顯示多項庫存記錄,而且您想要在報表尾建立總計以加總報表的所有細項。

報表上的總計。

若要計算總數,請將文字方塊控制項放在報表尾,然後在下列運算式中設定文字方塊的 [控制項來源] 屬性:

= Sum ([ table_field ])

在此情況下, table_field是包含您的小計值之欄位的名稱。該欄位可能來自資料表或查詢。Sum函數計算的table_field的所有值的總和。

下列程序顯示如何在文字方塊控制項中輸入運算式。

在文字方塊控制項中輸入運算式

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]

  2. 選取要輸入運算式的控制項。

  3. 如果沒有顯示屬性表,請按下 F4 顯示屬性表。

  4. 若要手動建立運算式,請在屬性工作表的 [資料] 索引標籤上,按一下文字方塊的 [控制項資料來源] 屬性,然後輸入 =,接著再輸入運算式的其餘部分。例如,若要計算前面所述的小計,請輸入 =Sum([table_field]),務必將 table_field 換成您的欄位名稱。

  5. 若要使用運算式建立器建立運算式,請按一下 [建立] 按鈕 按鈕影像 ] 屬性方塊中。

    完成運算式之後,屬性表外觀會類似:

    文字方塊的 [控制項資料來源] 屬性中的運算式。

頁面頂端

使用運算式作為查詢準則

您可以在查詢中使用準則來縮小查詢結果。您輸入準則運算式,並存取傳回符合運算式的資料列。若要查看更多組的範例,請參閱查詢準則的範例

例如,假設您要查看送貨日期在 2010 年前三個月的所有訂單。若要輸入準則,請將下列運算式輸入 [準則] 儲存格以針對查詢的日期/時間欄。這個範例會使用名為「出貨日期」的日期/時間欄。若要定義日期範圍,請用這種方式輸入準則:

Between #2010/1/1# And #2010/3/31#

「出貨日期」欄會與下圖所示類似。

查詢方格的 [準則] 列中的運算式。

對於 [訂單] 資料表的每一筆記錄而言,如果「出貨日期」欄中的值您指定的日期範圍內,則在查詢輸出中將會包含該記錄。請注意,在運算式會用井字號 (#) 括住日期。Access 會將井字號括住的值視為「日期/時間」資料類型。將這些值當作日期/時間資料處理,可讓您對這些值進行計算,例如將日期相減。

在查詢設計方格中輸入準則

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的查詢,然後按一下捷徑功能表中的 [設計檢視]

  2. 按一下要輸入準則的欄中的 [準則] 儲存格。

  3. 若要手動建立自己的運算式,請輸入準則運算式。

    附註: 請不要在準則運算式前面加上 = 運算子。

  4. 若要在功能區上使用運算式建立器建立自己的運算式,[設計],然後再按一下 [查詢設定] 群組中的 [建立器 按鈕圖像

    如果需要更大的空間編輯運算式,請將游標放在 [準則] 儲存格,然後按下 SHIFT+F2 以顯示 [放大顯示] 方塊:

    [放大顯示] 對話方塊中的運算式。

頁面頂端

在查詢中建立計算欄位

假設您正在設計查詢,而且想要使用查詢中的其他欄位顯示計算結果。若要建立計算欄位,您可以在查詢之 [欄位] 列的空白儲存格中輸入運算式。例如,如果查詢包含「數量」欄位和「單價」欄位,您可將兩個欄位相乘以建立「單項產品總價」計算欄位 (方法是在查詢的 [欄位] 列中輸入下列運算式):

單項產品總價: [數量] * [單價]

運算式前面的「單項產品總價:」文字則是將新的欄命名為「單項產品總價」。此名稱通常稱為「別名」。如果您沒有提供別名,Access 便會自行建立,例如 Expr1 (運算式1)。

使用運算式在查詢中建立計算欄位。

當您執行查詢時,Access 就會在每一列上執行計算,如下圖中所示:

[資料工作表檢視] 中顯示的計算欄位。

在查詢的設計檢視中建立計算欄位

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的查詢,然後按一下捷徑功能表中的 [設計檢視]

  2. 按一下要建立計算欄位的欄中的 [欄位] 儲存格。

  3. 若要手動建立自己的運算式,請輸入運算式。

    附註: 請不要在準則運算式前面加上 = 運算子;而是改用描述性標籤加上冒號來開始運算式。例如,輸入「單項產品總價:」作為運算式的標籤,便會建立名為「單項產品總價」的計算欄位。接著,在冒號後面輸入運算式的準則。

  4. 若要使用運算式建立器建立自己的運算式,請在功能區上,按一下 [設計],然後按一下 [查詢設定] 群組中的 [建立器]

頁面頂端

在資料表中建立計算欄位

在 Access 中,您可以在資料表中建立計算欄位。如此就不需要個別查詢以執行計算。例如,如果資料表依序列出每個項目的數量、價格和營業稅,您就可以新增顯示總價的計算欄位,如下所示:

[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))

  • 計算不可以包含其他資料表或查詢中的欄位。

  • 計算的結果為唯讀。

若要建立計算欄位:

  1. 在 [功能窗格] 中,按兩下資料表加以開啟。

  2. 水平捲動至資料表最右邊的欄,然後按一下 [按一下以新增] 欄標題。

  3. 在出現的清單中,按一下 [計算欄位],然後按一下要用於結果的資料類型。

    Access 即會顯示運算式建立器。

  4. 輸入要用於此欄位的計算,例如:

    [數量] * [單價]

    附註: 若是計算欄位,不必在運算式的開頭加上等號 (=)。

  5. 按一下 [確定]

    Access 隨即新增導出欄位,然後醒目提示欄位標題,以供您輸入欄位名稱。

  6. 輸入導出欄位的名稱,然後按 ENTER。

頁面頂端

新增驗證規則至資料表欄位或記錄

在資料庫中輸入資料時,最好使用運算式加以驗證,以避免輸入不正確的資料。在資料表中有兩種驗證規則:欄位驗證規則 (防止使用者在單一欄位中輸入不正確的資料),以及記錄驗證規則 (防止使用者建立不符合驗證規則的記錄)。您針對這兩種驗證規則使用運算式。

例如,假設您有一個名為「庫存」的資料表,其中有個欄位名為「庫存數量」,而現在您要設定規則,讓使用者只能輸入大於或等於零的值。也就是說,庫存不能是負數。如果要這麼做,您可以使用下列運算式作為「庫存數量」欄位的欄位驗證規則:

>=0

輸入驗證規則

使用下列程序輸入欄位驗證規則或記錄驗證規則:

  1. 在 [功能窗格] 中,按兩下要變更的資料表。

    Access 會在資料工作表檢視中開啟資料表。

  2. 如果是欄位的驗證規則,請選取要變更的欄位。

  3. 按一下功能區上的 [欄位],按一下 [欄位驗證] 群組中的 [驗證],然後按一下 [欄位驗證規則][記錄驗證規則]

    Access 即會顯示運算式建立器。

  4. 開始輸入您所要的準則。例如,如果欄位驗證規則要求所有的值要大於或等於零,請輸入下列內容:

    > = 0

    附註: 請不要在運算式前面加上等號 (=)。

驗證規則運算式是布林值,這表示其針對任何特定輸入值皆為 TrueFalse。值的驗證規則必須為 True,否則 Access 就不會儲存輸入,並且會顯示指出錯誤的驗證訊息。在此範例中,如果您輸入的「庫存數量」欄位值小於零,則驗證規則為 False,而且 Access 不會接受該值。如果您尚未輸入下節所述的驗證訊息,Access 便會顯示其自己的訊息,指出您所輸入的值已遭欄位的驗證規則禁止。

輸入驗證訊息

您可以輸入自訂驗證訊息以使資料庫更方便使用。這些自訂訊息會取代 Access 在資料不符合驗證規則時所顯示的一般訊息。您可以使用自訂驗證訊息來提供特定資訊,協助使用者輸入正確的資料;例如「庫存數量值不可為負數」。使用下列程序建立驗證訊息:

  1. 在 [功能窗格] 中,按兩下要變更的資料表。

    Access 會在資料工作表檢視中開啟資料表。

  2. 如果是欄位驗證訊息,請選取要新增驗證規則的欄位。

  3. 按一下功能區上的 [欄位],按一下 [欄位驗證] 群組中的 [驗證],然後按一下 [欄位驗證訊息][記錄驗證訊息]

  4. [輸入驗證訊息] 對話方塊中,輸入您要在資料與驗證規則不相符時顯示的訊息,然後按一下 [確定]

頁面頂端

新增驗證規則至控制項

附註: 驗證規則不是用於 Access web app 或 web 資料庫中的控制項。使用欄位或記錄驗證規則,而是前一節所述。

除了資料表欄位及記錄以外,控制項還有可接受運算式的 [驗證規則] 屬性。例如,假設您使用表單輸入報表的日期範圍,而且想確定開始日期不會早於 2010/1/1。您可以針對要輸入開始日期的文字方塊,如下設定 [驗證規則][驗證文字] 屬性:

屬性

設定

驗證規則

>=#2010/1/1#

驗證文字

您無法輸入早於 2010/1/1 的日期。

如果您嘗試輸入早於 2010/1/1 的日期,即會顯示 [驗證文字] 屬性中的文字訊息。如果 [驗證文字] 屬性方塊中沒有輸入文字,Access 即會顯示一般訊息。按一下 [確定] 之後,Access 會返回文字方塊。

提示: 無論在何處修改資料表欄位,只要針對該欄位設定驗證規則,就會在整個資料庫中強制執行規則。或者,如果針對表單上的控制項設定驗證規則,則只有當使用該表單時才會強制執行規則。如果想要針對不同的使用者建立不同的驗證規則,則可以分別針對資料表欄位及表單上的控制項設定驗證規則。

輸入控制項的驗證規則

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視][版面配置檢視]

  2. 以滑鼠右鍵按一下要變更的控制項,然後按一下捷徑功能表中的 [屬性]

    Access 會顯示控制項的屬性表。

  3. 按一下 [全部] 索引標籤,然後按一下 [驗證規則] 屬性方塊。

  4. 輸入運算式,或按一下 [建立] 按鈕 按鈕影像 在屬性方塊中,若要使用運算式建立器建立運算式。

    附註: 請不要在運算式前面加上 = 運算子。

  5. 若要自訂使用者輸入與驗證規則不相符的資料時要顯示的文字,請在 [驗證文字] 屬性中輸入所要文字。

頁面頂端

設定資料表欄位的預設值

您可以使用運算式為資料表中的欄位指定預設值;除非另行提供值,否則 Access 會針對新記錄使用該預設值。例如,假設您想要只要有人新增記錄,就會自動將日期和時間插入名為「訂單日期」的欄位。若要這麼做,您可以使用下列運算式:

Now()

指定資料表欄位的預設值

  1. 在 [功能窗格] 中,按兩下要變更的資料表。

    Access 會在資料工作表檢視中開啟資料表。

  2. 選取要變更的欄位。

  3. 按一下功能區上的 [欄位],然後按一下 [內容] 群組中的 [預設值]

    Access 即會顯示 [運算式建立器] 對話方塊。

  4. 輸入運算式的方塊中,並確定使用等號 (=) 的運算式。

附註: 如果您將控制項繫結至資料表欄位,而控制項和資料表欄位都有預設值,則控制項的預設值會優先於資料表欄位。

頁面頂端

設定控制項的預設值

另一個常使用運算式的位置是控制項的 [預設值] 屬性。控制項的 [預設值] 屬性就像是資料表欄位的 [預設值] 屬性。例如,若要使用目前的日期作為文字方塊的預設值,您可以使用下列運算式:

Date()

這個運算式會使用 Date 函數傳回目前的日期,但不會傳回時間。若是您將文字方塊繫結至資料表欄位,而欄位也有預設值,則控制項的預設值會優先於資料表欄位。設定資料表欄位的 [預設值] 屬性是較合適的作法。如此一來,如果您以相同資料表欄位作為不同表單之數個控制項的基礎,則會在每個控制項套用相同的預設值,以協助確認每個表單上的資料輸入一致。

輸入控制項的預設值

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的表單或報表,然後按一下捷徑功能表中的 [設計檢視][版面配置檢視]

  2. 選取要變更的控制項。

  3. 如果沒有顯示屬性表,請按 F4 鍵以顯示屬性表。

  4. 按一下屬性表上的 [全部] 索引標籤,然後按一下 [預設值] 屬性方塊。

  5. 輸入運算式,或按一下 [建立] 按鈕 按鈕影像 在屬性方塊中,若要使用運算式建立器建立運算式。

頁面頂端

控制要執行哪些巨集動作

在某些情況下,您可能只想在特定條件成立時,才執行巨集中的某個巨集指令或一連串巨集指令。例如,假設您只要在文字方塊中的值大於或等於 10 時才執行巨集指令。若要設定此規則,您可以在巨集的 [If] 區塊中使用運算式,即可在巨集中定義條件。

在這個範例中,假設文字方塊名為「項目」,則設定條件的運算式為 [項目]>=10

在巨集的 [If] 區塊中使用運算式。

在巨集的 [If] 區塊中輸入運算式

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的巨集,然後按一下捷徑功能表中的 [設計檢視]

  2. 按一下要修改的 [If] 區塊,或是從 [巨集指令目錄] 窗格中新增 [If] 區塊。

  3. 按一下 [If] 區塊的最上面一行。

  4. 在方塊中,輸入條件運算式,或按一下 [建立] 按鈕 按鈕圖像 以啟動運算式建立器的 [運算式] 方塊旁。

附註: 輸入的運算式必須是布林值 (表示其為 TrueFalse)。只有在條件為 True 時,[If] 區塊中的巨集指令才會執行。

頁面頂端

將報表中的資料分組和排序

您可以使用 [群組、排序與合計] 窗格定義報表資料的群組層次和排序順序。一般來說,您大部分都是針對從清單選取的欄位進行分組或排序。不過,如果您要對計算值進行分組或排序,則可改成輸入運算式。

群組是指將包含重複值的欄結合在一起的程序。例如,假設資料庫包含不同城市辦公室的銷售資訊,資料庫的其中一個報表為「依城市排列銷售額」,而提供報表資料的查詢會依城市的值將資料分組。這類群組可以讓資訊更容易閱讀與理解。

相對地,排序則是強制將查詢結果中的列 (或記錄) 照順序排列。例如,您可以依主索引鍵值 (或其他欄位中的另一組值) 遞增或遞減排序記錄,或是依一個或多個字元照指定的順序 (例如字母順序) 排序。

將群組和排序加入報表

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]

  2. 按一下功能區上的 [設計],然後按一下 [分組及合計] 群組中的 [群組及排序]

    [群組、排序與合計] 窗格會出現在報表下方。

  3. 若要將群組層次新增到報表,請按一下 [新增群組]

  4. 若要將排序順序新增到報表,請按一下 [新增排序]

    新的群組層次或排序順序,以及提供報表資料的欄位清單都會顯示在窗格中。此圖顯示典型的新群組層次 (依類別分組) 和排序順序 (依製造商排序),以及群組和排序可用欄位的清單:

    選擇 [群組、排序與合計] 窗格中的運算式選項。

  5. 在可用欄位的清單底下,按一下 [運算式] 以啟動運算式建立器。

  6. 在運算式建立器的運算式方塊 (上面的方塊) 中輸入要使用的運算式。請確認您以等於 (=) 運算子當作運算式的開頭。

將運算式新增到現有群組或排序

  1. 在 [功能窗格] 中,用滑鼠右鍵按一下要變更的報表,然後按一下捷徑功能表中的 [版面配置檢視][設計檢視]

  2. 按一下要變更的群組層次或排序順序。

  3. 按一下 [群組對象] (針對群組層次) 或 [排序方式] (針對排序順序) 旁的向下鍵。

    包含可用欄位的清單即會出現。

  4. 在包含欄位的清單底部,按一下 [運算式] 以啟動運算式建立器。

  5. 在運算式建立器的運算式方塊 (上面的方塊) 中輸入運算式。請確認您以等於 (=) 運算子作為運算式的開頭。

頁面頂端

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

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×