第 13 章 建立資料表的關聯 著作權所有 © 旗標出版股份有限公司
本章提要 資料表的關聯種類 善用『查閱欄位』及『查閱精靈』 在『資料庫關聯圖』視窗中設定永久性關聯 子資料工作表
資料表的關聯種類 資料表間的『暫時性關聯』 資料表間的『永久性關聯』
資料表間的『暫時性關聯』 所謂暫時性關聯, 就是關聯僅作用在該查詢物件, 當使用者結束該查詢後, 關聯就跟著結束了。要建立資料表之間暫時性關聯的方法很簡單, 只要建立多個資料表的查詢物件, Access 便會自動在這些資料表之間建立暫時性關聯。
資料表間的『暫時性關聯』 請建立名為 "書籍訂單" 的資料庫檔案, 然後將書附光碟中 "Ch13 範例資料.mdb" 的客戶、訂單、訂單細目及書籍資料表匯入。由於訂單資料和客戶資料是分放在兩個不同的資料表中, 因此在查看訂單資料表時, 無法看到相關的客戶名稱及聯絡人姓名。以下我們就來建立一個可同時觀看訂單及相關客戶資料的查詢:
資料表間的『暫時性關聯』
資料表間的『暫時性關聯』
資料表間的『暫時性關聯』
資料表間的『暫時性關聯』
資料表間的『暫時性關聯』
資料表間的『暫時性關聯』 當我們在查詢視窗中加入資料表時, Access 便會自動幫我們尋找各資料表間是否有相同名稱及資料類型的欄位, 若找到且其中一個欄位是主鍵, 則 Access 便會以此欄位來設定暫時性關聯。 接著, 請分別在兩個資料表中選取要顯示的欄位:
資料表間的『暫時性關聯』
資料表間的『暫時性關聯』
資料表間的『永久性關聯』 如果我們希望這些表格之間的關聯不只是作用在一個查詢, 還可運用到其他物件上, 那麼就可在這些表格間建立永久性關聯。如此做, 會有以下 2 個好處: 當我們在建立新的查詢、表單或報表時, 只要是選用到有永久關聯的資料表, Access 便會直接幫我們套上已經建立好的永久性關聯。 Access 可依照我們所設定的規則, 來幫忙維護資料庫中資料的參考完整性。
資料表間的『永久性關聯』 設定永久性關聯的方法有二種, 第一是建立查閱欄位, 第二則是直接在資料庫的關聯視窗中設定, 以下我們分別介紹這二種方法。
如何維護資料的參考完整性 在子資料表中輸入資料時, 要檢查輸入的正確性: 例如在輸入訂單時, 可限制使用者只能輸入在客戶資料表中有登記的客戶編號。我們可以利用查閱欄位來達成這樣的功能 (稍後會詳細介紹):
如何維護資料的參考完整性
如何維護資料的參考完整性 管制在父資料表中修改關聯欄位的值: 如果有人任意將『一品書店』的編號由 1 改成 18, 那麼所有客戶編號 1 的訂單資料都變成孤兒了。因此, 像這樣的危險操作必須加以管制才行, 其方法有二: 不允許更改:這是最省時省力的方法。 要改就一起改:這是比較有彈性的作法, 就是當在父資料表中做修改時, 則子資料表中相關的欄位也要跟著修改, 那麼它們之間的關聯仍可保存。
如何維護資料的參考完整性 管制刪除父資料表中的記錄: 例如我們刪除了編號 3 的客戶, 那麼所有客戶編號 3 的訂單資料也都變成孤兒了。管制刪除的方法也是有二種: 不允許刪除。 要刪就連關聯的子資料一起刪。
善用『查閱欄位』及 『查閱精靈』 查閱欄位 使用查閱精靈來建立查閱欄位 檢視查閱欄位 練習:在訂單細目中設定查閱欄位
查閱欄位 經由查閱欄位, 我們可在一個資料表中查閱到另一個關聯資料表中的資料:
建立查閱欄位的好處 Access 會將查閱所用到的關聯設為永久性關聯。 輸入資料時直接由查閱的列示窗中選取即可, 免除鍵盤輸入的麻煩。 必要時可以限制使用者只能由列示窗中選取, 而無法另外輸入其他的值, 如此可避免因輸入錯誤而導致的問題。
建立查閱欄位的好處 瀏覽資料表時, 可看到比較有意義的資料, 例如瀏覽訂單資料表時, 可直接看到下單的客戶名稱, 而非沒意義的客戶編號。
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位
使用查閱精靈來建立查閱欄位 完成前面的步驟後, 查閱精靈一共幫我們做了二件事: 在客戶編號欄建立了一個查閱欄位。 建立訂單與客戶資料表間的永久性關聯。
檢視查閱欄位 建立好查閱欄之後, 請按工具列最左邊的檢視鈕, 切換到資料工作表檢視模式:
檢視查閱欄位的相關設定
檢視查閱欄位的相關設定
檢視查閱欄位的相關設定 其實查閱欄位和一般欄位在設定上的不同處就是在於查閱頁次:
練習:在訂單細目中設定查閱欄位 接下來, 請讀者自行練習將訂單細目資料表中的書籍編號欄改成查閱欄位, 不過這次我們要查閱的資料包括書籍資料表中的書籍名稱及單價二欄。整個操作步驟和前面一個例子差不多, 只除了在步驟 4 中要多選一個欄位:
練習:在訂單細目中設定查閱欄位
練習:在訂單細目中設定查閱欄位 並在最後一個交談窗中依下圖填入標題:
練習:在訂單細目中設定查閱欄位 建立好之後的效果如下:
查閱固定的資料集 如果某個欄位值只有固定的幾個項目可以選, 例如性別欄只能輸入 "男" 或 " 女", 那麼我們也可利用查閱精靈來建立一個『查閱固定資料集』的查閱欄。 請開啟客戶資料表的設計視窗, 然後在性別欄的資料類型選擇查閱精靈:
查閱固定的資料集
查閱固定的資料集
查閱固定的資料集
查閱固定的資料集 設定好之後, 我們切到資料工作表檢視視窗中看看結果:
在『資料庫關聯圖』視窗中 設定永久性關聯 資料庫關聯圖視窗主要是用來建立、檢視及修改各資料表間的永久性關聯。請先關閉書籍訂單資料庫視窗以外的所有視窗, 然後執行『工具/資料庫關聯圖』命令 (或按資料庫關聯圖鈕 ), 即可開啟資料庫關聯圖視窗:
在『資料庫關聯圖』視窗中 設定永久性關聯
在『資料庫關聯圖』視窗中 設定永久性關聯 資料庫關聯圖視窗可儲存各資料表在視窗中的位置及是否顯示等資訊, 以便下次再開啟時可以看到同樣的版面配置。
在『資料庫關聯圖』視窗中 設定永久性關聯 建立永久性關聯 修改關聯設定 刪除資料表及關聯 加入新的資料表或查詢 隱藏資料表 儲存與關閉資料庫關聯圖
建立永久性關聯 現在, 我們要來建立訂單資料表與訂單細目資料表間的永久性關聯, 請用滑鼠將訂單資料表中的訂單序號欄, 拉曳到訂單細目中的訂單序號欄上面:
建立永久性關聯
建立永久性關聯 放開滑鼠後, 便會出現編輯關聯交談窗, 用來設定兩個資料表要如何關聯:
建立永久性關聯 由於我們希望能維護資料的參考完整性, 所以請如下設定:
建立永久性關聯 當您選取強迫參考完整性多選鈕時, 其下的另外兩項才允許您設定, 這兩項的作用如下: 重疊顯示更新相關欄位: 重疊顯示刪除相關記錄:
建立永久性關聯 最後按建立鈕, 便可關閉關聯視窗而完成設定:
什麼是『連接屬性』 ? 當我們要同時取用兩個關聯資料表中的資料時, 連接屬性可用來定義這兩個資料表的資料要如何做合併。請按連接類型鈕, 開啟如下交談窗:
什麼是『連接屬性』 ?
什麼是『連接屬性』 ? 勾選第 1 個單選鈕:當您要從這兩個資料表中取得資料時, 只會列出關聯欄位值相同的資料, 亦即只會顯示訂單編號為 "1" 的所有資料。如下圖所示:
什麼是『連接屬性』 ? 勾選第 2 個單選鈕:當您要從這兩個資料表中取得資料時, 會列出父資料表 (訂單資料表) 中的所有資料, 及子資料表 (訂單細目資料表) 中關聯欄位值與父資料表的關聯欄位值相同的資料。如下圖所示:
什麼是『連接屬性』 ? 勾選第 3 個單選鈕:當您要從這兩個資料表中取得資料時, 會列出子資料表中的所有資料, 及父資料表中關聯欄位值與子資料表的關聯欄位值相同的資料。如下圖所示:
修改關聯設定
修改關聯設定
修改關聯設定 同樣的, 我們在訂單細目與書籍資料表間的關聯線上雙按:
刪除資料表及關聯
刪除資料表及關聯
刪除資料表及關聯 如果想要移除資料表, 則必須先刪除連到該資料表的所有關聯線, 然後 Access 才允許將這個資料表從資料庫關聯圖視窗中除名。底下我們示範將書籍資料表移除 (假設您已刪除了它的所有關聯線):
刪除資料表及關聯
加入新的資料表或查詢 如果您想在資料庫關聯圖視窗中加入其他的資料表, 可按工具列的顯示資料表鈕 (或是在資料庫關聯圖的空白處按右鈕, 並執行『顯示資料表』命令), 則會開啟顯示資料表交談窗:
加入新的資料表或查詢
隱藏資料表
隱藏資料表
隱藏資料表 如果您要將全部的資料表都隱藏起來, 那麼可以這樣做:
隱藏資料表
取消隱藏資料表 要如何將隱藏的資料表回復最快的方法就是:
儲存與關閉資料庫關聯圖 最後, 我們按資料庫關聯圖視窗右上角的關閉鈕, 則會出現如下交談窗:
子資料工作表 "子資料工作表" 和 "子資料表" 不同的地方在於:子資料工作表可直接在其父資料表上開啟。並且開啟的子資料工作表, 就像一般的資料工作表一樣, 可以進行各種工作表的操作。首先來看看客戶與訂單資料表的關聯圖:
子資料工作表
子資料工作表 開啟客戶資料表, 看看是否有設定子資料工作表:
子資料工作表
子資料工作表 相信大家已經注意到在子資料工作表中還有加號, 這表示訂單資料表也有它的子資料表, 由於 Access 的子資料工作表, 支援顯示多層的資料工作表, 所以就算是關聯性較複雜的資料表, 也能從其中一個資料表去瞭解它和其他資料表間的關係。
子資料工作表
子資料工作表 下面是這三個資料表的關聯圖:
刪除子資料工作表
刪除子資料工作表
插入子資料工作表
插入子資料工作表
插入子資料工作表