열 수가 많은 테이블에 대한 중복을 제거하면서 열 번호가 다른 두 테이블을 병합하는 방법

축제

Access 데이터베이스에 Table1 및 Table2 테이블이 두 개 있습니다. Table1에는 50 개의 열이 있고 Table2에는 30 개의 열이 있습니다. Table1의 항목에 대해 column1의 값과 동일한 값을 가진 Table2의 항목을 column30에 복사하지 않고 Table2를 Table1과 병합하고 싶습니다.

열 순서와 이름은 Table1과 Table2에서 30 번째 열까지 동일합니다.

이 질문과 거의 같은 문제가 있습니다 중복을 제거하는 동안 다른 열 번호를 가진 두 테이블을 어떻게 병합합니까? 그러나 그의 경우에는 테이블이 훨씬 작기 때문에 (Table1에는 3 개의 열이 있고 Table2에는 2 개의 열이 있습니다.) 제 경우에는 SQL 문이 너무 비현실적입니다.

VBA와 SQL의 조합을 사용하여이를 수행하는 더 실용적인 방법이 있습니까? 미리 감사드립니다.

질질 끌게 하다

엄격한 VBA 솔루션은 다음과 같이 보일 수 있습니다.

Dim rs As DAO.Recordset, rs1 As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Table1Name", dbOpenDynaset)
Set rs1 = CurrentDb.OpenRecordset("Table2Name", dbOpenDynaset)

rs1.MoveFirst
Do While rs1.EOF <> True
  'In this example of FindFirst I am searching for a Date, String, and Number
  rs.FindFirst "Field1 = '" & rs1.Fields("Field1").value & "' AND " & _
               "Field2 = #" & rs1.Fields("Field2").value & "# AND " & _
               "Field3 = " & rs1.Fields("Field3").value

  'Check to see if the current rs record matches the current rs1 record
  'If not then the record in rs1 needs to be added to rs
  If (Not (rs.Fields("Field1").value = rs1.Fields("Field1").value And _
           rs.Fields("Field2").value = rs1.Fields("Field2").value And _
           rs.Fields("Field3").value = rs1.Fields("Field3").value)) Then
     rs1.AddNew
     rs1.Fields("Field1").value = rs1.Fields("Field1").value
     rs1.Fields("Field2").value = rs1.Fields("Field2").value
     rs1.Fields("Field3").value = rs1.Fields("Field3").value
     rs1.Fields("Field4").value = rs1.Fields("Field4").value
     rs1.Fields("Field5").value = rs1.Fields("Field5").value
     rs1.Fields("Field6").value = rs1.Fields("Field6").value
     rs1.Fields("Field7").value = rs1.Fields("Field7").value
     rs1.Update
  End If
  rs1.MoveNext
Loop

위의 FindFirst명령문에서 두 테이블이 동일한 레코드를 가지고 있음을 증명하는 검색 기준으로 대체하십시오. 그런 다음 If문은 FindFirst. 마지막으로, 사이 rs1.AddNewrs1.Update당신이 이상 복사 할 모든 필드를 지정합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관