概要本文向您介紹了如何在相關表中編輯記錄。包括以下主題: 如何在數據表(表或查詢)或窗體中添加或編輯數據 如何保存數據表或窗體中的記錄 如何刪除數據表或窗體中的記錄 如何撤消數據表或窗體中的添加或編輯更改 參照完整性 級聯更新和級聯刪除 關于限制或確認數據 子數據表 何時可以從查詢中更新數據 更多信息 如何在數據表(表或查詢)或窗體中添加或編輯數據 在數據表視圖中打開表或查詢或者在窗體視圖中打開窗體。 執行下列操作之一: 若要添加新記錄,請指向編輯菜單中的轉到,然后單擊新建記錄。鍵入數據,然后按 TAB 鍵轉到下一個字段。到達記錄末尾時,按 TAB 鍵轉到下一條記錄。 要在某個字段中編輯數據,請單擊要編輯的字段,然后鍵入數據。 若要替換整個值,請將鼠標指針移到該字段的最左邊,直到指針變為十字形指針時單擊。鍵入數據。 注意:若要糾正鍵入錯誤,請按 BACKSPACE 鍵。若要取消當前字段的更改,請按 ESC 鍵。若要取消整個記錄的更改,請在移出此字段之前再次按 ESC 鍵。當您移動到另外一個記錄時,Microsoft Access 將保存更改。 如何保存數據表或窗體中的記錄一旦您將插入點移動到別的記錄中或關閉正在處理的窗體或表,Microsoft Access 就會自動保存您添加或編輯的記錄。
若要在編輯記錄時特意保存其數據,請單擊記錄菜單上的保存記錄。 如何刪除數據表或窗體中的記錄 在“數據表”視圖中打開表或查詢或者在“窗體”視圖中打開窗體。 單擊要刪除的記錄。 在編輯菜單上,單擊刪除記錄。注意: 當刪除數據時,您可能希望刪除其他表中與之相關的數據。例如,如果您刪除了一個供應商,則您可能還希望刪除此供應商提供的產品。在某些情況下,您可以通過實施參照完整性和打開級聯刪除以確保刪除適當的數據。參照完整性和級聯更新及刪除將在本文稍后部分更詳細地講述。 如何撤消數據表或窗體中的添加或編輯更改執行下列操作之一:
若要撤消最新的更改,請單擊編輯菜單上的撤消。 如果您已經保存了當前記錄的更改或已移動到其他記錄,則請單擊編輯菜單上的撤消保存的記錄。注意: 一旦您開始編輯其他記錄,應用或刪除了一個篩選器,或者切換到了另一個窗口,則不能使用這些方法糾正更改。 參照完整性參照完整性是一套規則,Microsoft Access 使用它確保相關表中的記錄之間的關系有效,并保證您不會無意間刪除或更改相關的數據。當您使用參照完整性時,以下規則適用: 不可以在主表的主鍵中不存在的相關表外鍵字段中輸入值。不過,您可以在外鍵中輸入一個 Null(空)值以表明這些記錄不相關。例如,您不能讓一個訂單分配給不存在的客戶,但您可以通過在“客戶 ID”字段中輸入一個 Null 值讓一個訂單不分配給任何客戶。 如果一個記錄在相關的表中存在匹配的記錄,則不能夠從主表中刪除該記錄。例如,如果在“訂單”表中有分配給某個員工的訂單,則您不能夠從“員工”表中刪除該員工記錄。 如果一個記錄有相關的記錄,則您不能在主表中更改其主鍵值。例如,如果在“訂單”表中有訂單分配給某一員工,則您不能夠在“員工”表中更改此員工的 ID。 級聯更新和級聯刪除對于強制執行了參照完整性的關系,您可以指定是否希望 Microsoft Access 自動級聯更新和級聯刪除相關的記錄。如果設置了這些選項,則通常由參照完整性規則阻止的刪除和更新操作將能夠進行。當您在主表中刪除記錄或更改主鍵值時,Microsoft Access 將對相關表進行必要的更改以保持參照完整性。
如果您在定義關系時單擊級聯更新相關字段復選框,則每當您更改主表中的記錄主鍵時,Microsoft Access 就會自動地將所有相關記錄中的主鍵值更新為新的值。例如,如果您更改“客戶”表中的客戶 ID,則“訂單”表中此客戶的每一個訂單的“客戶 ID”字段都會自動更新,這樣就不會破壞關系。Microsoft Access 執行級聯更新時不顯示任何消息。
注意: 如果主表中的主鍵是一個“自動編號”字段,則設置級聯更新相關字段復選框將不起作用,因為不能更改“自動編號”字段中的值。
如果您在定義關系時選中了級聯刪除相關記錄復選框,則每當您刪除主表中的記錄時,Microsoft Access 就會自動刪除相關表中的相關記錄。例如,如果您從“客戶”表中刪除一個客戶記錄,則此客戶的所有訂單會自動從“訂單”表(包括與“訂單”記錄相關的“訂單明細”表)中刪除。當您在選中級聯刪除相關記錄復選框的情況下從窗體或數據表中刪除記錄時,Microsoft Access 會警告您說相關記錄也可能會被刪除。然而,當您使用刪除查詢刪除記錄時,Microsoft Access 將自動刪除相關表中的記錄而不顯示警告。
關于限制或確認數據Microsoft Access 提供了多種方法用以控制用戶向數據庫中輸入數據的方式。例如,您可以通過為某個字段定義一個確認規則來限制用戶可以向此字段中輸入的數據。如果用戶輸入到此字段的數據違反了此規則,Access 將顯示一個消息,告訴用戶哪些輸入類型是允許的。另一個控制數據輸入的方法是創建一個輸入掩碼以限制可以輸入到字段中不同位置的值的種類。您可以通過設置表中的字段屬性或設置窗體上的控件的屬性來執行這些簡單形式的確認和限制。
在多數情況下,最好通過在表的“設計”視圖中設置字段的屬性來定義數據的檢驗和限制。這樣,無論何時在窗體中使用此字段,該字段的確認規則和其他屬性都將應用于通過使用此窗體執行的數據輸入。
不過,如果輸入到窗體控件的數據沒有綁定到表中某個字段,并且您需要限制或確認數據輸入,則您必須在此窗體中定義這些屬性。另外,還有一些情況要求您必須將“宏”或 Microsoft Visual Basic for Applications 代碼與窗體一起使用,以執行更復雜的確認。例如,您可能希望能夠覆蓋您的確認規則或將不同表中的值進行比較。
有關表和窗體中的確認方面的更多信息,請單擊幫助菜單上的 Microsoft Access 幫助,在“Office 助手”或“應答向導”中鍵入“確認”,然后單擊搜索以查看返回的主題。
關于子數據表在子數據表中,您可以查看和編輯表、查詢或窗體數據表或子窗體中的相關數據或聯接數據。例如,在“羅斯文”示例數據庫中,“供應商”表與“產品”表具有一對多的對應關系,所以對于“數據表”視圖中的“供應商”表中的每一行,您都可以在子數據表中查看和編輯“產品”表中相關的行。單擊展開指示符號可以展開或折疊子數據表。
有關表和窗體中的子數據表的更多信息,請單擊幫助菜單上的 Microsoft Access 幫助,在“Office 助手”或“應答向導”中鍵入“子數據表”,然后單擊搜索以查看返回的主題。
何時可以從查詢中更新數據在某些情況下,您可以在查詢“數據表”視圖中編輯數據以更改底層表中的數據。而在其他一些情況下不能這樣做。以下信息顯示了是否可以更新查詢結果,如果不能,是否有其他替代辦法。
數據可更新:以下情況您可以更新查詢或查詢字段: 查詢基于一個表 查詢基于具有一對一關系的多個表 查詢結果包含了“備注”、“超級鏈接”或“OLE 對象” 數據在某些條件下可以更新:如果查詢基于具有一對多關系的多個表,則您可能無法編輯以下查詢字段的數據。
查詢字段 解決辦法 從“一”方聯接字段 啟用兩個表之間的級聯更新。 新建記錄 — 如果數據表中沒有出現“多”方聯接字段 將“多”方中的聯接字段添加到查詢中以允許添加新記錄。 在更新“一”方的數據之后,從“多”方聯接字段。 保存記錄;然后您將能夠對“多”方聯接字段進行更改。 存在外部聯接的一對多關系中的“一”方表中的空白字段 在“多”方表中的字段中輸入值 — 但只有在“一”方的聯接字段中包含此記錄的值時。 新建記錄 — 如果 ODBC 表的整個唯一鍵不輸出 選擇 ODBC 表的所有主鍵字段以允許向其中插入。
數據可以刪除但不可以更新: 查詢或查詢字段 解決辦法 未授予更新數據權限的查詢(或底層的表) 若要修改數據,則必須賦予權限。 未授予刪除數據權限的查詢(或底層的表) 若要刪除數據,則必須賦予權限。
數據不可更新: 查詢或查詢字段 解決辦法 基于三個或更多表的查詢,這些表之間存在“多對一對多”的關系 盡管您不能夠直接更新查詢中的數據,但是,如果窗體的 RecordsetType 屬性設置為 Dynaset(不一致更新),則您可以根據查詢的具體情況在窗體或數據訪問頁上更新數據。 交*表查詢 無 SQL 傳遞查詢 無 計算總和、平均、合計或字段中其他類型的總計值的查詢,或滿足以下條件的更新查詢:引用了交*表查詢、選擇查詢或包含了匯總或聚合函數的子查詢的“更新為”行中的字段。 通過使用更新查詢的“更新為”行中的域聚合函數,您可以引用交*查詢、選擇查詢或包含了匯總或聚合函數的子查詢中的字段。 聯合查詢 無 UniqueValues 屬性設置為“Yes”的查詢 無 包含一個無唯一索引的鏈接 ODBC 表或無主鍵的“Paradox”表的查詢 無 包含不止一個表或查詢的查詢,而且這些表或查詢未在“設計”視圖中通過聯接線聯接 為了更新這些表,您必須正確地聯接它們。 計算字段 無 字段為只讀;數據庫以只讀方式打開或位于一個只讀驅動器上 無 由另一個用戶刪除或鎖定的記錄中的字段 鎖定的記錄一解除鎖定后就應該可以更新。
編輯:北京信誠IT保姆IT外包部 http:// www.aboverow.cn www.xcit.com.cn |