ch09 運算式的應用

32
Ch09 運運運運運運 資資資資資

Upload: chet

Post on 20-Jan-2016

65 views

Category:

Documents


1 download

DESCRIPTION

Ch09 運算式的應用. 資料庫管理. 本章大綱. 本章內容包含課本第16章: 運算式的基礎 運算式建立幫手 在物件建立運算式 運算式的應用實例. 運算式的架構 - 說明. Access 運算式是一個數學或邏輯運算式,這是一個計算欄位值的公式,也就說欄位值不是使用者自行輸入或由查閱欄選取,而是運算式的運算結果。例如:在訂單中的產品價格乘訂購數量是各項產品小計的運算式,如下所示: 小計 :CCur([ 定價 ]*[ 數量 ]*[ 折扣 ]/100) 訂單總金額的運算式,如下所示: Sum([ 小計 ]) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ch09  運算式的應用

Ch09 運算式的應用Ch09 運算式的應用資料庫管理

Page 2: Ch09  運算式的應用

2

本章大綱本章大綱本章內容包含課本第16章:運算式的基礎運算式建立幫手在物件建立運算式運算式的應用實例

Page 3: Ch09  運算式的應用

3

運算式的架構 - 說明運算式的架構 - 說明 Access 運算式是一個數學或邏輯運算式,這是一個計算欄位值的公式,也就說欄位值不是使用者自行輸入或由查閱欄選取,而是運算式的運算結果。例如:在訂單中的產品價格乘訂購數量是各項產品小計的運算式,如下所示:小計 :CCur([ 定價 ]*[ 數量 ]*[ 折扣 ]/100)

訂單總金額的運算式,如下所示:Sum([ 小計 ])

【小計】是欄位別名,接著在” :”號之後是運算式。另一種應用是查詢物件【準則】欄位的邏輯運算式條件,如下所示:Like "*" & [ 請輸入客戶名稱 ] & "*"

Page 4: Ch09  運算式的應用

4

運算式的架構 - 識別字 1運算式的架構 - 識別字 1識別字 在運算式中的 [ 定價 ] 、 [ 數量 ] 和 [ 折扣 ] 是識別字,使用” [“和” ]”號括起的是資料表或查詢物件的欄位值,因為沒有指明資料表,所以是參考同一個資料表或查詢物件。

在識別字可以進一步使用” !”和” .”運算子參考物件的控制項和屬性值,如下所示:

“!”運算子:參考到資料表欄位、表單,報表或表單 /報表的控制項。“.”運算子:參考到表單、報表或控制項的屬性。

Page 5: Ch09  運算式的應用

5

運算式的架構 - 識別字 2運算式的架構 - 識別字 2

物件參考 說明[客戶資料查詢]![客戶編號] 參考【客戶資料查詢】查詢物件的【客戶編

號】欄位[客戶資料]![客戶編號] 參考【客戶資料】資料表物件的【客戶編號】

欄位Reports![客戶資料]![客戶編號] 參考【客戶資料】報表物件的【客戶編號】

控制項Forms![客戶資料]![客戶編號] 參考【客戶資料】表單物件的【客戶編號】

控制項Forms![客戶資料].Visible 參考【客戶資料】表單物件的 Visible屬性Forms![客戶資料]![客戶編號].FontSize 參考【客戶資料】表單物件的【客戶編號】

控制項的 FontSize屬性

Page 6: Ch09  運算式的應用

6

運算式的架構 - 運算子運算式的架構 - 運算子運算子在運算式中的” *”、” -“和” /”是運算子,這就是我們常見的加減乘除和邏輯等數學或邏輯運算子。

Page 7: Ch09  運算式的應用

7

運算式的架構 - 文字值運算式的架構 - 文字值文字值在運算式中除了識別字外,還可以直接使用「文字值」( Literal ),這就是數字、字串或日期值,不同資料類型的文字值需要使用不同符號來分別,如下表所示:

資料類型 符號 文字值範例數字 N/A 1、100、234、34.5等文字 " "學貫行銷"

日期 # #2004/09/03#

Page 8: Ch09  運算式的應用

8

運算式的架構 - 函數運算式的架構 - 函數函數 運算式中可以使用 SQL 聚合函數或 VBA 函數進行計算,例如: CCur() 、 SUM() 、 Int() 、 Date() 等函數。在本節前 2 個運算式範例的說明,如下:小計 :CCur([定價 ]*[數量 ]*[折扣 ]/100)”:運算式的目的是建立別名為【小計】的欄位,欄位內容是運算式結果的產品金額小計。使用【定價】、【數量】和【折扣】的資料表欄位值進行運算, CCur() 是 VBA 函數,可以將數值轉換成貨幣格式。Sum([小計 ]):運算式是將稱為【小計】欄位(即上述產品小計)的值加總,這就是訂單總金額。 Sum() 是SQL 聚合函數,可以計算指定欄位的總計。

Page 9: Ch09  運算式的應用

9

運算式的使用運算式的使用

運算式可以在 Access 各種物件中使用,在資料庫中經常使用運算式的地方,如下所示:資料表物件:設定資料表屬性,例如:欄位驗證規則或預設值欄位。查詢物件:新增欄位或建立【準則】欄位的運算式,可以建立計算欄位或查詢 / 篩選記錄的條件。表單物件:新增內含運算式作為計算用途的控制項,例如:新增計算各項產品銷售金額小計的控制項。報表物件:新增內含運算式作為計算用途的控制項,例如:新增計算各項產品銷售金額小計的控制項。

Page 10: Ch09  運算式的應用

10

運算式建立幫手 -1運算式建立幫手 -1 在 Access 建立運算式是使用「運算式建立幫手」。請在查詢物件的設計檢視視窗,在【準則】欄的欄位上執行右鍵快顯功能表的【建立幫手】指令,可以看到「運算式建立幫手」對話方塊。

Page 11: Ch09  運算式的應用

11

運算式建立幫手 -2運算式建立幫手 -2

在運算式建立幫手對話方塊的使用介面,由上而下可以分成 3 部分,如下所示:運算式方塊:在上方運算式方塊顯示建立的運算式。運算子按鈕:中間一排按鈕可以在運算式插入數學或邏輯運算子。運算式元件:在下方元件清單可以選擇運算式使用的運算元或其它運算子,例如:常數、函數、資料表或查詢物件欄位。

Page 12: Ch09  運算式的應用

12

運算式方塊運算式方塊 運算式建立幫手的運算式方塊顯示建立的運算式,這就是準備建立的 Access 運算式,可以自行輸入、或是按下方運算子按鈕或選取運算式元件來建立運算式,以此例是建立運算式:【 Like "*" & [ 請輸入客戶名稱 ] & "*" 】。

Page 13: Ch09  運算式的應用

13

運算子按鈕 - 說明運算子按鈕 - 說明在運算式建立幫手的中間有一排按鈕,這些按鈕可以在運算式插入數學、字串、比較或邏輯運算子,在按鈕列的最後 2個按鈕是左右括號” (“和” )”,在括號內的運算式比括號外的運算式先執行,其目的是推翻現存的運算子優先順序,即所謂:「先乘除,後加減」。

Page 14: Ch09  運算式的應用

14

運算子按鈕 - 算術運算子運算子按鈕 - 算術運算子算術運算子是常見的加減乘除四則運算,如下表所示:

運算子 說明 運算式範例+ 加法 [定價]+50- 減法 [定價]-50/ 除法 [折扣]/100* 乘法 [定價]*[數量]

Page 15: Ch09  運算式的應用

15

運算子按鈕 - 字串運算子運算子按鈕 - 字串運算子字串運算子” &”可以連結 2 個字串,如下所示:"*" & [ 請輸入客戶名稱 ] & "*"

在上述運算式可以在使用者輸入字串前後加上” *”星號的字串。如果運算式的內容不是字串而是數值,運算式會自行將數值轉換成字串後 , 再進行連結,如下表所示:

運算式 產品名稱 定價 結果[產品名稱]&[定價] "abc" 456 "abc456"

Page 16: Ch09  運算式的應用

16

運算子按鈕 - 比較運算子運算子按鈕 - 比較運算子

比較運算子可以建立欄位值的條件範圍,如下所示:<=#1980/1/1#

上述運算式是指日期值小於等於 1980 年 1月 1 日,雖然在運算子按鈕只提供常用的” =”、” >”、” <”和” <>”四個,但是我們可以組合出” =”(等於)、” <=”(小於等於)、” >=”(大於等於)、” >”(大於)、” <”(小於)和” <>”(不等於)的比較運算子。

Page 17: Ch09  運算式的應用

17

運算子按鈕 - 邏輯運算子 (AND)運算子按鈕 - 邏輯運算子 (AND) AND 邏輯運算子是一種「且」連結,連結的 2 個運算元都為 True ,則運算式結果為 True ,如下所示:[ 客戶編號 ]=100 AND [ 客戶名稱 ]=”學貫”

邏輯運算子需要 2 個條件都成立時才為 True ,反之為 False ,其真假值表如下表所示:

A B A AND BTrue True TrueFalse True FalseTrue False FalseFalse False False

Page 18: Ch09  運算式的應用

18

運算子按鈕 - 邏輯運算子 (OR)運算子按鈕 - 邏輯運算子 (OR) OR 邏輯運算子是一種「或」連結,連結

的 2 個運算元中,只需任一個為 Ture ,則運算式結果就為 True ,如下所示:[ 地址 ]=”台北” OR [ 客戶名稱 ]=”學貫”

邏輯運算子的 2 個條件只需一個成立即可,其真假值表如下表所示:

A B A OR BTrue True TrueFalse True TrueTrue False TrueFalse False False

Page 19: Ch09  運算式的應用

19

運算子按鈕 - 邏輯運算子 (NOT)運算子按鈕 - 邏輯運算子 (NOT) NOT 邏輯運算子只有一個運算元,這是一種「非」運算,傳回運算元相反的值,如下所示:NOT <=#1998/1/1#

上述運算式是日期值小於等於 1998 年 1月 1 日的相反,也就是大於 1998 年 1 月1 日。其真假值表如下表所示:

A NOT ATrue FalseFalse True

Page 20: Ch09  運算式的應用

20

運算子按鈕 - 邏輯運算子 (LIKE-說明 )運算子按鈕 - 邏輯運算子 (LIKE-說明 ) Like 包含運算子只需包含子字串或數值就符合條件,可以配合萬用字元建立範本字串的比對,如下所示:Like "(02)2222-1111"

Like "(02)*"在上述第 1 個運算式是找出是否符合字

串 (02)2222-1111 ,第 2 個運算式使用萬用字元” *”星號代表任何子字串或數值,以此例只需電話開頭是 (02) 就符合條件。

Page 21: Ch09  運算式的應用

21

運算子按鈕 - 邏輯運算子 (LIKE-範例 )運算子按鈕 - 邏輯運算子 (LIKE-範例 )

運算式 說明 範例結果Like "P*" 欄位以字母 P開頭所有記錄 P111、PQ12、ProfessorLike "H[C-F]###" 欄位以字母 H開頭,其後接著

是從 C到 F之間的任何英文字母和 3個數字

HC111、HD222、HE333、HF444

Like "C[*]###" 欄位以字母 C開頭,其後接著*符號和 3個數字

C*111、C*222

Like "G?s" 欄位以字母 G開頭,s結尾,問號代表任何單一字元

G1s、Gas、GCs、Ggs

Like "H[!a-z]" 欄位以字母 H開頭,其後為不屬於 a與 z之間的所有字元

H1、H%

Page 22: Ch09  運算式的應用

22

運算式元件 -1運算式元件 -1運算式元件可以選擇運算式可以使用的元件,包括:資料表、查詢、報表物件的欄位、常數和函數等,也可以包括其它運算子,如下圖所示:

Page 23: Ch09  運算式的應用

23

運算式元件 -2運算式元件 -2

在算式元件一共分成 3 個方塊,其說明如下所示:左邊方塊:各種 Access 物件、函數、常數、運算子和共用運算式等資料夾,如果是” +”號,按兩下可以展開其子資料夾。中間方塊:顯示選取左邊方塊資料夾後的詳細元件清單。例如:選【查詢】資料夾下的【查詢客戶的電話號碼】,可以顯示查詢物件的可用欄位。右邊方塊:顯示欄位或控制項屬性值,或是詳細的內建函數清單。

Page 24: Ch09  運算式的應用

24

在資料表物件使用運算式在資料表物件使用運算式在資料表物件使用運算式主要是使用在欄位屬性的【預設值】和【驗證規則

Page 25: Ch09  運算式的應用

25

在查詢物件使用運算式在查詢物件使用運算式在查詢物件使用運算式是使用在【欄

位】、【準則】和【或】等欄

Page 26: Ch09  運算式的應用

26

在表單物件使用運算式 -1在表單物件使用運算式 -1在表單物件的控制項可以在【控制項資料來源】屬性建立運算式,或是建立事件來執行指定的運算式。

Page 27: Ch09  運算式的應用

27

在表單物件使用運算式 -2在表單物件使用運算式 -2

表單控制項除了可以使用運算式外,還可以使用巨集或 VBA程式碼,其說明如下所示:巨集建立幫手:使用巨集指令作為控制項內容的來源,詳細的說明請參閱課本第 17 章。程式碼建立幫手:使用 Access 的 VBA程式碼作為控制項的資料的來源,詳細的說明請參閱課本第 19 章。

Page 28: Ch09  運算式的應用

28

在報表物件使用運算式在報表物件使用運算式報表物件如同表單物件一般,控制項的內容也一樣可以改為運算式。

Page 29: Ch09  運算式的應用

29

資料表欄位的預設值資料表欄位的預設值當在資料表輸入記錄資料時,為了方便輸入,有一些欄位可以設定預設值,例如:大部分圖書產品說明都擁有【附光碟】字串,為了加速資料輸入,我們可以將它設為欄位的預設值。

再則,如果欄位資料類型是日期 /時間,我們還可以使用 Date() 函數建立欄位預設值,在新增記錄時直接填入今天日期。

Page 30: Ch09  運算式的應用

30

資料表欄位的驗證規則資料表欄位的驗證規則在資料表設計檢視的欄位擁有【驗證規

則】和【驗證文字】屬性,驗證規則可以檢查欄位內容是否符合條件,如果不符合就顯示【驗證文字】屬性的內容。

例如:【產品資訊】資料表的【安全庫存】欄位值不可小於等於 50 本書。

Page 31: Ch09  運算式的應用

31

表單或報表的運算式欄位表單或報表的運算式欄位當使用表單或報表精靈新增控制項時,其資料來源預設是資料表或查詢物件的欄位內容,不過我們還是可以將控制項的資料來源改為運算式,或是在表單或報表新增資料來源為運算式的額外控制項。

例如:產品售價是定價的 8 折,所以筆者準備在精靈建立的報表新增控制項來顯示產品售價。

Page 32: Ch09  運算式的應用

32

練習一練習一課本 p. 16-29 , p. 16-30 實作題 10~12題