我有一個鏈接表,我需要在其中更新現有行中的列
當我(以編程方式)執行參考選擇查詢的更新查詢時,它不起作用,但如果我執行參考表的相同查詢,我用查詢填充它確實有效。下面的例子
我找不到這是為什么。我使用選擇查詢進行了訪問更新查詢,并彈出錯誤“操作必須使用可更新的查詢”。我查了一下,得到了不同的解釋。有沒有人對此有所了解?是否有關于通過參考選擇查詢來更新鏈接表的特殊規則?
UPDATE Table1, Query1
SET Table1.Filename = Query1.Filename
WHERE (Table1.Client = Query1.Client AND Table1.Id = Query1.Id);
UPDATE Table1, Table2
SET Table1.Filename = Table2.Filename
WHERE (Table1.Client = Table2.Client AND Table1.Id = Table2.Id);
uj5u.com熱心網友回復:
要使查詢可更新,有一長串需要滿足的條件。基本思想是查詢中的所有資料必須干凈地映射到一個真實物件,在顯示時不計算任何內容。
主鍵 ID 必須是唯一的,并且在查詢的所有表中都有明確定義。
Alan Browne 發布了一份清單,其中應包含您需要查找的內容。
為什么我的查詢是只讀的?
如果您無法編輯查詢中的資料,此串列可幫助您確定其不可更新的原因:
它有一個 GROUP BY 子句。Totals 查詢始終是只讀的。
它有一個 TRANSFORM 子句。交叉表查詢始終是只讀的。
它在 SELECT 子句中使用 First()、Sum()、Max()、Count() 等。聚合記錄的查詢是只讀的。
它包含一個 DISTINCT 謂詞。在查詢的屬性中將唯一值設定為否。
它涉及一個 UNION。聯合查詢始終是只讀的。
它在 SELECT 子句中有一個子查詢。取消選中子查詢下的 Show 框,或者改用域聚合函式。
它在 FROM 子句中的多個表上使用不同方向的 JOIN。洗掉一些表。
JOIN 中的欄位未正確編制索引:JOINed 欄位上沒有主鍵或唯一索引。
查詢的記錄集型別屬性是快照。在查詢的屬性中將記錄集型別設定為“動態集”。
該查詢基于另一個只讀查詢(堆疊查詢)。
您的權限是只讀的(訪問安全。)
資料庫以只讀方式打開,或檔案屬性為只讀,或資料庫位于只讀介質(例如 CD-ROM、無寫權限的網路驅動器)上。
查詢呼叫 VBA 函式,但資料庫不在受信任的位置,因此代碼無法運行。(請參閱此 Access 2007 頁面頂部的黃色框。)
查詢輸出的欄位是計算欄位 (Access 2010。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/380755.html
下一篇:服務監控-TOP命令詳解
