0
我有一個Access VBA程序,它將兩個表連接起來並將它們存儲在另一個表中。我的問題是,代替加入commonField
的SQL查詢並使用commonField
字段的新表,新表具有名爲tableName1_commonField
的另一個名爲tableName2_commonField
的commonField
。SQL查詢加入Access Access VBA中的字段重命名字段
因此,如果查詢如下:
SELECT IIPM.*, UNIX.* INTO [UNIX_lob] FROM IIPM INNER JOIN UNIX ON IIPM.[appcode_0] =
UNIX.[appcode_0];
然後appcode_0
場是IIPM
和UNIX
之間共同成爲新表UNIX_lob
命名爲IIPM_appcode_0
和UNIX_appcode_o
兩個字段時,我希望它仍然是一個單字段appcode_0
。
我已在SQL查詢後跟蹤這對右邊的指令:
' Set the name of the new table where the joins will be stored. '
newTableName = "[" + tableName2 + "_lob]"
' Join tableName1 and tableName2 on commonField, and store the joined data in newTableName '
sqlJoinQuery = "SELECT " + tableName1 + ".*, " + tableName2 + ".*" & _
" INTO " + newTableName & _
" FROM " + tableName1 & _
" INNER JOIN " + tableName2 & _
" ON " + tableName1 + "." + commonField + " = " + tableName2 + "." + commonField + ";"
Debug.Print sqlJoinQuery
CurrentDb.Execute sqlJoinQuery
將被預期進入VBA的行爲,因爲你不能有2列,名稱相同。但你的問題是什麼?爲什麼會發生?因爲字段名稱在表格之間重複,並且您正在選擇通配符的所有列。如何阻止它?不要選擇所有列。如何追加而不是加入?使用Union全部 – Matt
我不知道這是預期的行爲,並認爲在編寫我的查詢時出錯。謝謝 - 在這種情況下,如果我重命名其中一列,那就足夠了。 – Paradox
馬特說什麼。沒有任何真正的方法可以做到這一點,我可以想到,你將不得不實際列出你所有的領域。那麼,也許你可以遍歷字段集合並將它們全部寫入數組,但這聽起來像一場噩夢。 –