2014-12-23 102 views
1

我們在我工作的公司內部有一個內部程序,在MS Access內部,我們將所有表格鏈接到我們的三個數據庫。然而;爲了爲學生創建新的路線,有人需要我們的程序的單獨副本來處理,而不會影響實際的數據庫。MS Access 2007 - 導入表格後,記錄集不再可更新

刪除鏈接表後,將它們全部導入到本地,並保存.mdb後,我無法再更改大多數表單中的值。例如:

會出現一個下拉菜單,其中列出了學生可能的路線代碼。通常你可以選擇一個。你不再能夠,並且在左下角看到「這個記錄集不可更新」。

我對此有點新,但我無法想象爲什麼導入表會破壞任何東西。我不希望發生任何關鍵違規行爲(就像我在鏈接表時可能會發生的那樣)或任何此類性質。如果任何人都可以指出我正確的方向,將不勝感激!謝謝!

+0

因此,您有一個後端數據庫爲3個前端數據庫提供表,並且您複製了其中一個前端並將所有後端表導入到前端的本地副本中? –

+0

檢查權限問題,並確保這些表保留其主鍵。有沒有可以鎖定窗體/控件的VBA(代碼)? Locked = True在該組合框的屬性中?允許編輯? –

+0

當您在本地導入表時,您是否添加了主鍵? – mellamokb

回答

0

訪問可以處理鏈接表或視圖上的複合主鍵。當然,重要的是要確保你告訴訪問權使用正確的領域。在鏈接到視圖時,Access不會獲取主鍵信息(可能ODBC驅動程序不會傳遞該信息?),但我敢打賭它也可能發生在表上。 不確定這些照片是否會有所幫助,但希望它能指引您朝着正確的方向發展。這裏有一個鏈接視圖,你可以在這個圖片中看到:

enter image description here

如果您在設計視圖中打開它,你可以看到有沒有主鍵:

enter image description here

這意味着表是不可編輯的(在添加新的按鈕是灰色):

enter image description here

於是我運行此命令告訴訪問使用複合主鍵的鏈接視圖:

CurrentDb.Execute "Create Unique Index PrimaryKey On View_AssnsWithSorterField([Serial No], AssignmentDate)" 

如果您再次打開在設計視圖鏈接視圖,可以看到複合主鍵:

enter image description here

現在出現添加新按鈕。

enter image description here

你說,你嘗試添加複合主鍵,但訪問不會允許它,這聽起來像有一些關於表的數據或結構,防止它使用該密鑰。如何在後端數據庫中創建表的空副本,然後嘗試鏈接到該數據庫?如果這仍然不起作用,那麼表中可能存在一個唯一約束,或觸發器或其他內容,導致Access不希望使其更新。相反,如果鏈接正常並且您可以在鏈接的空白測試表中添加/編輯記錄,那麼它必須是數據在導致問題的實際表中。 有時,如果您將表的副本分割成更小的塊(比如可能只是從主鍵列開始),逐漸重建它,最終會導致Access不讓其可更新。

另一種可能性當然是駕駛員本身的問題。鏈接到SQLServer和Oracle的ODBC驅動程序質量好,可以處理複雜的主鍵,但我使用了連接到隱藏數據庫的垃圾驅動程序,並且它們無法處理像子查詢,聯合查詢等複雜的事情,即使您可以在數據庫本身做這些事情;該驅動程序只寫入處理基本的選擇/插入/更新/刪除,就是這樣。

相關問題