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
马特说什么。没有任何真正的方法可以做到这一点,我可以想到,你将不得不实际列出你所有的领域。那么,也许你可以遍历字段集合并将它们全部写入数组,但这听起来像一场噩梦。 –