910 likes | 976 Views
第 11 章. 資料表的進階設計. 本章重點. 11-1 在資料表中加入圖片欄位 11-2 進階的欄位屬性設定 11-3 設定輸入遮罩 11-4 管制欄位資料的正確性 11-5 管制整筆記錄的正確性 11-6 設定查閱頁次的屬性 11-7 在資料表中加入附件的欄位. 資料表的進階設計. 資料表乃是資料庫的根本 , 因為它才是真正存放資料的地方!其他如查詢、表單、報表等 , 它們最原始的資料來源都是資料表 , 所以我們可把資料表看成是其他資料庫物件的起源。由此觀之 , 設計資料表是非常重要的。. 3. 資料表的進階設計.
E N D
第 11 章 資料表的進階設計
本章重點 11-1 在資料表中加入圖片欄位 11-2 進階的欄位屬性設定 11-3 設定輸入遮罩 11-4 管制欄位資料的正確性 11-5 管制整筆記錄的正確性 11-6 設定查閱頁次的屬性 11-7 在資料表中加入附件的欄位
資料表的進階設計 資料表乃是資料庫的根本, 因為它才是真正存放資料的地方!其他如查詢、表單、報表等, 它們最原始的資料來源都是資料表, 所以我們可把資料表看成是其他資料庫物件的起源。由此觀之, 設計資料表是非常重要的。 3
資料表的進階設計 本章將教您一些有關資料表的進階設計技巧, 內容包括: 如何建立圖片欄位 進階的欄位屬性設定 設定輸入遮罩 管制輸入資料的正確性 設定查閱頁次的屬性 如何建立附件欄位 4
11-1 在資料表中加入圖片欄位 在本節中, 我們將教您如何利用 OLE (Object Linking and Embedding : 物件連結與內嵌) 物件資料類型, 在書籍資料表中建立圖片欄位, 以存放每本書籍的封面照片。
什麼是 OLE 物件 在 Access 中, OLE 物件可以是任何類型的資料, 例如:圖形、聲音、動畫, 甚至是 Word、Excel 的文件等等, 因此只要使用 OLE 物件資料類型的欄位, 任何種類的資料都可以放進資料庫中。 不過, 使用 OLE 物件有一個先決條件, 那就是您必須先在 Windows 安裝能夠處理該類資料,並具備 OLE 功能的應用程式才行。如此該物件才能經由這個應用程式來正確的顯示或編輯。
建立 OLE 欄位 請先開啟上一章所建立的書籍訂單資料庫 (或者從書附光碟的 "Ch11範例資料.accdb" 匯入書籍資料表), 再開啟書籍資料表, 切換到常用頁次, 按檢視區的檢視鈕, 執行『設計檢視』 命令, 開啟設計檢視視窗, 然後依下圖操作:
那麼, 要如何將照片圖檔輸入封面照片欄中呢?由於封面照片欄是 OLE 物件類型, 所以我們要以插入 "物件" 的方式來輸入資料。請先選取第 1 筆記錄的封面照片欄位, 然後按滑鼠右鈕,執行『 插入物件』命令, 開啟插入物件交談窗: 輸入照片
輸入照片 我們可利用『 由檔案建立』插入新的檔案。 但是, 如果新插入檔案的類型, 無法從 OLE 物件中找到適合的應用程式來開啟時, 會自動的歸類到Package類型。 若被歸類到此類型, 則無法在表單上面看到其效果, 而只會顯示Package文字。 有鑑於此, 如果無法確定您所使用的圖形軟體是否為 OLE 物件所支援, 筆者建議先將欲插入的圖形轉成點陣圖檔, 因為點陣圖檔為 OLE 物件之一。
假設我們要將 F9603.bmp (放在書附光碟 CH11 資料夾) 插入至第 1 筆紀錄的封面照片欄中, 請如下操作: 輸入照片
輸入照片 15
輸入照片 請注意!若在上頁圖中設定了連結項目, 那麼指定的圖片並不會放入資料表中, 而是與圖片檔建立一個 “連結”的關係。 當您要觀看或編輯這張圖片時, Access 才會將之由圖片檔中讀進來顯示。 這樣作可以大大地節省資料庫的儲存空間, 但要注意連結的圖片檔必須放在固定的資料夾中 (不可以搬移到其他資料夾), 否則會發生找不到圖片檔的情形。最後完成結果如下所示:
輸入照片 • 最後完成結果如下所示: • 若要放入資料庫的圖片檔案很大, 或數量很多, 則建議您先調整檔案大小,或是考慮改用 "連結" 的方式, 以免因資料量超過 Access 的資料庫容量限制 2GB。
直接在封面照片欄雙按滑鼠, 即可叫出物件所屬的應用程式來開啟或編輯: 修改照片的內容
更換照片 如果想要更換照片, 那麼只要先選取該封面照片欄位, 然後按滑鼠右鈕重新執行『 插入物件』命令, 另外輸入一張新的照片即可。
11-2 進階的欄位屬性設定 Access 提供了 11 種欄位資料類型 (其中一個是查閱精靈) 供我們選用, 而每一種類型之下, 又有許多的屬性可以設定:
進階的欄位屬性設定 由於每種類型的特性都不一樣, 所以它們的屬性設定項目也會略有差異。 底下我們就來看看這些屬性要如何設定, 如果您想一邊學一邊測試, 那麼可以將本章範例資料庫的欄位屬性測試資料表匯入到您的資料庫中做測試 (此資料表在 "Ch11範例資料.accdb" ):
欄位大小屬性 只有文字及數字類型可以設定欄位大小。文字類型的範圍是由 0 到 255 個位元, 數字類型則可設為以下幾種:
欄位大小屬性 您可視儲存資料的大小來決定要使用哪一種, 例如我們的欄位值只可能由 1 到 100, 那麼就可以選用位元組項目。
格式屬性 格式是用來設定資料要如何顯示或列印出來。例如:
格式屬性 需要注意的是, 是/否類型的格式屬性若設為 True/False, 那麼資料會以 True/False 來顯示, 若設為 On/Off , 則是使用 On/Off 來顯示。 當然, 您也可以切換到查閱頁次, 並在顯示控制項屬性欄中選擇核取方塊項目, 那麼就會以核取方塊來顯示了。
小數點位數屬性 這個屬性可用來控制數字及貨幣類型的資料, 在顯示時要有固定的小數位數。 例如您不要顯示小數位數, 就可設為 0。預設的是自動, 表示不做任何控制 (依照原來的格式)。
標題屬性 標題屬性中設定的字串, 可以在顯示或列印時取代欄位名稱。 例如我們將書籍編號欄的標題設為書號, 那麼無論在顯示或列印資料表視窗時, 您看到的欄位標題都會是書號。
預設值屬性 除了自動編號、OLE 物件及附件之外的類型, 都可以指定一個在新增資料時自動輸入的欄位預設值。 Access 預設會將數字、貨幣類型的預設值屬性設為 0, 其他類型則無預設值。
必須有資料屬性 這裡只能填入是或否, 若選是, 那麼該欄位就一定要輸入資料而不得為空白, 否則當您要離開該筆記錄時會出現如下視窗: 若您設定為否, 而且在編輯時也沒有填入資料, 則該欄位的值將被設為 Null。
何謂 Null 值 Null 表示不知道、未知的情況, 即表示目前設定為 Null 值之欄位沒有包含任何資料。 例如我們在輸入一筆客戶資料時, 若對方的地址尚不確定, 那麼就可以留空白表示其為 Null值, 待稍後地址確定了再行補上。
允許零長度字串屬性 零長度字串就是長度為 0 的字串, 我們也可稱之為空字串, 以 "" (二個連續的雙引號) 來表示。 這個屬性只對文字及備忘類型有效。預設是否, 表示當我們編輯時若只輸入一或多個空白字元 (按空白鍵), 那麼 Access 會將之轉換成 Null 值來儲存。 若設為是, 則輸入的『""』或『由空白組成的字串』會以零長度字串來儲存, 只有在不輸入任何資料時才會以 Null 值儲存。
零長度字串和 Null 的差異 那麼, "零長度字串" 和 Null 有什麼不同呢?Null 是表示未知的狀況, 而零長度字串則表示已知, 其值為一個零長度的字串。 例如在客戶資料表中的電話欄, 我們可以將其允許零長度字串屬性設為是, 那麼在輸入時若不知道對方的電話號碼, 就不要輸入任何值 (Null); 若知道對方根本沒有申請電話, 那麼就可以輸入 "" (零長度字串) 來表示。
其他的屬性 除了以上介紹過的之外, 還有以下的屬性: 索引:這些在第 3 章己介紹過, 就不再贅述了。 輸入遮罩:此屬性可設定讓使用者只能依照固定格式輸入, 我們將在下一節為您介紹。 驗証規則、驗証文字:設定能對輸入資料做一些正確性的檢查, 我們留到 11- 4 節再介紹。 查閱頁次中的各項屬性, 我們將在 11-6 節詳細介紹。
11-3 設定輸入遮罩 什麼是輸入遮罩呢?例如使用者在輸入電話號碼時, 可能會輸入: 02-2396-3257 (02)2396-3257 2396-3257 23963257
設定輸入遮罩 對於這些不統一的格式, 在做尋找或排序資料時會造成相當大的困擾。而 "輸入遮罩" 的功能, 便是讓使用者只能依照固定的格式輸入, 例如:
設定輸入遮罩 只有文字、數字、日期/時間及貨幣類型的欄位可以設定輸入遮罩。 不過一般來說, 我們通常只會對文字或日期/時間設定輸入遮罩。 事實上, Access 已經替文字及日期/時間類型準備好了一個輸入遮罩精靈, 所以我們就不必學習一大堆設定用的符號及字元了。
設定輸入遮罩 • 底下我們來看看如何啟動文字類型的輸入遮罩精靈:
設定輸入遮罩 最後按完成鈕, 即設定好了電話號碼的遮罩, 我們可以試著操作一下看看:
日期類型的輸入遮罩精靈和文字類型差不多, 只是可選取的項目不同而已: 設定輸入遮罩
如果您想要自行設計輸入遮罩, 可以按鍵, 叫出 Access 線上輔助說明: 設定輸入遮罩
11-4 管制欄位資料的正確性 設定驗證規則的效果 資料表中已有輸入資料時 驗証規則的格式
設定驗證規則的效果 當使用者在輸入資料時, 難免會有粗心打錯的時候, 此時如果我們能對輸入資料做一些正確性的檢查, 就可以降低這種錯誤發生。 例如在輸入金額時, 要防止多打或少打一個 0, 而將 400打成 4000 或 40 了, 那麼就可以設定金額欄位的驗証規則與驗証文字屬性如下:
設定驗證規則的效果 如此, 當我們輸入超過規則範圍時, Access 就會拒絕輸入, 並顯示訊息如下: 當我們使用查詢或表單來輸入資料時, 在資料表中所設定的驗証規則同樣有效。