2

我被這個錯誤困住了好幾個小時。 在open_form事件中,我將值設置爲recordset,像這樣錯誤:此記錄集不可更新

Id = vId。 但有了1個表格,無論我更新哪個字段,我都有這個錯誤。

This recordset is not updateable 

我讀這篇文章http://support.microsoft.com/default.aspx?...kb;en-us;328828

我試過很多東西。沒有工作 有沒有關係,我得到了navigation control,形式是dynaset,我有一個primary key autoincrementallow edits啓用和data entry設置爲yes

而且,我編輯此表權限

任何人都遇到過此錯誤?

此外,我將97轉換爲2010,現在我的表格鏈接到SQL server 2012。 我不知道它是否工作之前,因爲它不是我的應用程序,但我想它是功能

+0

將表單的Data Entry屬性設置爲Yes表示表單不會顯示現有記錄,只允許您添加新記錄。那是你想要的嗎?但是,我不知道這是否會導致您嘗試解決的問題。 – HansUp

+0

如果表單的記錄源是一個查詢,它可能有助於向我們展示查詢的SQL。 – HansUp

+0

非常感謝。它現在起作用了。你讓我看看Record源,並且有3個連接,其中一個連接在沒有設置主鍵的表上。我只是設置Id來修復它。你可以把它寫成答案來獲得要點:) – Marc

回答

3

檢查窗體的記錄來源。如果它是SELECT語句,請將SQL複製到新的Access查詢的SQL視圖中。

然後在數據表視圖中打開該查詢。如果無法在數據表視圖中編輯數據,則必須弄清楚如何修改查詢,以便它可以返回可編輯的記錄集。

2

如果這有助於任何人,我對這個問題有不同的原因。

當我們從一個SQL Server轉換到另一個時,這裏的人員刪除了所有鏈接表,併爲每個Access MDB再次設置它們。

對於一個表(它實際上指向一個SQL視圖,哪個是查詢引起問題的表單的鏈接表),人們沒有檢查列以指定鏈接表的「索引「(IIRC)專欄...即使在對話中甚至有一點評論,如果你想更新,有必要檢查一個或多個字段。幸運的是,該視圖選擇了一個ID,所以我嘗試了它,並且它工作。 (如果這沒有奏效,我將指定構成SQL表格的關鍵字的視圖列,該表格是由表格更新的表格)。

我曾在論壇上看到關於「所有更新表單的表需要有一個索引「,並且我檢查了視圖引用的SQL表,但是我沒有想到」表「意味着Access」鏈接表「。我看到在鏈接表上唯一指定索引的地方是重新添加鏈接表時。