我目前在 MS Access 中使用兩個查詢將資料插入到我的表 OM_Extract 中。
查詢 1:
INSERT INTO OM_Extract (cod, type, name, level)
SELECT table1.cod, table1.type, table2.name, table2.level
FROM table1 INNER JOIN table2 ON table1.cod = table2.cod;
查詢 2:
UPDATE OM_Extract INNER JOIN table3 ON OM_Extract.level = table3.level SET OM_Extract.region = table3.region, OM_Extract.description = table3.description;
我正在使用的 VB 應用程式中從最終表 (OM_Extract) 中獲取資料,但按照我現在的做法,它迫使我始終在 Access 中運行 AutoExec 宏,以便更新我的 OM_Extract 表.
我想創建一個不向表中插入資料的查詢,這樣我就可以在我的 VB 應用程式中直接從該查詢中獲取資料。
它會是這樣的:
UPDATE
SELECT table1.cod, table1.type, table2.name, table2.level AS OM_Extract
FROM table1 INNER JOIN table2 ON table1.cod = table2.cod
INNER JOIN table3 ON OM_Extract.level = table3.level SET OM_Extract.region = table3.region, OM_Extract.description = table3.description;
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
看起來您正試圖從規范化的表結構中提取資料。在這種情況下,無需更新。如果要更新表 2 中的資料,請使用單獨的更新查詢。因此,甚至不需要參考 Table2.level 或 Table2.region,我將它們排除在示例之外。假設:

'resulting sql for saved query OM_Extract
'either just call the saved function or duplicate the sql
SELECT Table1.cod, Table1.type, Table2.table2name AS name, Table2.level, Table3.region, Table3.description
FROM (Table1 INNER JOIN Table2 ON Table1.cod = Table2.cod) INNER JOIN Table3 ON Table2.level = Table3.level;
注意:name是access中的保留字。一種處理方法是將 name 更改為訪問表中的其他內容,然后再轉換回 name。
我們假設使用 INNER JOINS 沒有丟失資料。根據實際情況,我們可能會使用其他連接或將列包裝在 nz 函式中
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314245.html
