2014-01-10 129 views
0

我已在Access 2007中啓用參照完整性。我想從客戶表中刪除客戶記錄,但希望將該特定客戶的相關單據詳細信息保存在另一個稱爲帳單表的表中。當我嘗試刪除客戶記錄時,我收到一條錯誤消息:「記錄無法刪除或更改,因爲表'賬單'包含相關記錄」。在不刪除其他Access表中的相關記錄的情況下刪除記錄

+1

我不知道您的業務規則,但刪除具有帳單詳細信息的客戶記錄似乎顯然是錯誤的。客戶表中的標誌字段如何將客戶標記爲邏輯刪除? – Steve

+0

我正在開發「健身房管理系統」。當客戶中斷時,我想刪除個人數據,但不是他的收據/賬單支付細節。 – user3181915

+0

然後刪除級聯關係。這仍然不合邏輯。如果您問的問題可以完成,您如何知道這些結算細節涉及哪個客戶? – Steve

回答

2

兩種方式都無法實現:您可以強制實施參照完整性,也可以在刪除父記錄時(即通過禁用參照完整性強制)來創建孤兒子記錄。

正如你的問題的評論中提到,你可以名爲 [無效]一個Yes/No場或[刪除]添加到父表,然後使用僅考慮「主動」父記錄,例如查詢

SELECT * FROM [Customer] WHERE NOT [Inactive] 

另一種可能性是有一個單獨的「存檔」數據庫來存儲已刪除的項目。將所有相關記錄(父級和子級)複製到歸檔數據庫,然後從主數據庫中刪除它們(子級優先,然後父級)。

+0

謝謝..這解決了我的問題。 – user3181915