訪問可以處理鏈接表或視圖上的複合主鍵。當然,重要的是要確保你告訴訪問權使用正確的領域。在鏈接到視圖時,Access不會獲取主鍵信息(可能ODBC驅動程序不會傳遞該信息?),但我敢打賭它也可能發生在表上。 不確定這些照片是否會有所幫助,但希望它能指引您朝着正確的方向發展。這裏有一個鏈接視圖,你可以在這個圖片中看到:
如果您在設計視圖中打開它,你可以看到有沒有主鍵:
這意味着表是不可編輯的(在添加新的按鈕是灰色):
於是我運行此命令告訴訪問使用複合主鍵的鏈接視圖:
CurrentDb.Execute "Create Unique Index PrimaryKey On View_AssnsWithSorterField([Serial No], AssignmentDate)"
如果您再次打開在設計視圖鏈接視圖,可以看到複合主鍵:
現在出現添加新按鈕。
你說,你嘗試添加複合主鍵,但訪問不會允許它,這聽起來像有一些關於表的數據或結構,防止它使用該密鑰。如何在後端數據庫中創建表的空副本,然後嘗試鏈接到該數據庫?如果這仍然不起作用,那麼表中可能存在一個唯一約束,或觸發器或其他內容,導致Access不希望使其更新。相反,如果鏈接正常並且您可以在鏈接的空白測試表中添加/編輯記錄,那麼它必須是數據在導致問題的實際表中。 有時,如果您將表的副本分割成更小的塊(比如可能只是從主鍵列開始),逐漸重建它,最終會導致Access不讓其可更新。
另一種可能性當然是駕駛員本身的問題。鏈接到SQLServer和Oracle的ODBC驅動程序質量好,可以處理複雜的主鍵,但我使用了連接到隱藏數據庫的垃圾驅動程序,並且它們無法處理像子查詢,聯合查詢等複雜的事情,即使您可以在數據庫本身做這些事情;該驅動程序只寫入處理基本的選擇/插入/更新/刪除,就是這樣。
因此,您有一個後端數據庫爲3個前端數據庫提供表,並且您複製了其中一個前端並將所有後端表導入到前端的本地副本中? –
檢查權限問題,並確保這些表保留其主鍵。有沒有可以鎖定窗體/控件的VBA(代碼)? Locked = True在該組合框的屬性中?允許編輯? –
當您在本地導入表時,您是否添加了主鍵? – mellamokb