[英]MS Access SQL Update Linked table column based on query
我有一個鏈接表,我需要在其中更新現有行中的列
當我(以編程方式)執行引用 select 查詢的更新查詢時,它不起作用,但如果我執行引用填充查詢的表的相同查詢,它確實有效。 下面的例子
我找不到這是為什么。 我使用 Select 查詢進行了訪問更新查詢,並彈出錯誤“操作必須使用可更新查詢”。 我查了一下,得到了不同的解釋。 有人對此有見識嗎? 是否有關於通過引用 select 查詢來更新鏈接表的特殊規則?
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);
要使查詢可更新,有一長串需要滿足的條件。 基本思想是查詢中的所有數據必須干凈地從 map 到一個真正的 object,在顯示時沒有計算任何內容。
主鍵 ID 在查詢中的所有表中必須是唯一且明確定義的。
Alan Browne 發布了一份清單,其中應包含您需要查找的內容。
"
為什么我的查詢是只讀的?
如果您無法編輯查詢中的數據,此列表可以幫助您確定其不可更新的原因:
它有一個 GROUP BY 子句。 Totals 查詢始終是只讀的。
它有一個 TRANSFORM 子句。 交叉表查詢始終是只讀的。
它在 SELECT 子句中使用 First()、Sum()、Max()、Count() 等。 聚合記錄的查詢是只讀的。
它包含一個 DISTINCT 謂詞。 在查詢的屬性中將唯一值設置為否。
它涉及一個 UNION。 聯合查詢始終是只讀的。
它在 SELECT 子句中有一個子查詢。 取消選中子查詢下的顯示框,或改用域聚合 function。
它在 FROM 子句中對多個表使用不同方向的 JOIN。 刪除一些表。
JOIN 中的字段未正確索引:JOINed 字段上沒有主鍵或唯一索引。
查詢的 Recordset Type 屬性是 Snapshot。 在查詢的屬性中將記錄集類型設置為“動態集”。
該查詢基於另一個只讀查詢(堆疊查詢)。
您的權限是只讀的(訪問安全。)
數據庫以只讀方式打開,或文件屬性為只讀,或數據庫位於只讀介質(例如 CD-ROM、沒有寫入權限的網絡驅動器)上。
該查詢調用了 VBA function,但數據庫不在受信任的位置,因此代碼無法運行。 (請參閱此 Access 2007 頁面頂部的黃色框。)
查詢輸出的字段是計算字段 (Access 2010.)
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.