두 테이블을 조인하고 다른 테이블에 저장하는 Access VBA 프로그램이 있습니다. 내 질문은 commonField
에 가입하고 commonField
필드가있는 새 테이블을 갖는 SQL 쿼리 대신 tableName1_commonField
이라는 commonField
이라는 테이블과 tableName2_commonField
이라는 테이블이 있습니다.Access VBA에서 field renames 필드의 JOIN 쿼리
그래서, 쿼리는 경우 다음과 같은 : 나는 그것이 유지하고자 할 때
SELECT IIPM.*, UNIX.* INTO [UNIX_lob] FROM IIPM INNER JOIN UNIX ON IIPM.[appcode_0] =
UNIX.[appcode_0];
그런 다음 IIPM
와 UNIX
에 공통되는 appcode_0
필드는 새 테이블 UNIX_lob
에 IIPM_appcode_0
및 UNIX_appcode_o
라는 두 개의 필드가된다 단일 필드 appcode_0
. 나는 다른 질문을했다
' 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
을하는 데 도움이됩니다. 그러나 당신의 질문은 무엇입니까? 왜 그런 일이 일어나는거야? 테이블간에 필드 이름이 반복되고 모든 열에 대해 와일드 카드를 선택하기 때문입니다. 어떻게 그걸 막을 수 있니? 모든 열을 선택하지 마십시오. 가입하기보다는 추가하는 방법? Union All 사용 – Matt
예상되는 동작이며 내 쿼리를 작성하는 데 실수 였다고 생각하지 않았습니다. 고마워요.이 경우 열의 이름을 바꾸면 충분합니다. – Paradox
매트가 말한 것. 내가 생각할 수있는 것을 총체적으로 할 수있는 실제적인 방법이 없다. 실제로 모든 분야를 나열해야 할 것이다. 음, 아마도 필드 콜렉션을 반복해서 배열에 모두 쓸 수는 있지만, 그것은 악몽처럼 들릴 수 있습니다. –