달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
728x90
반응형

 

 

(엑셀ado)엑셀자료를 한꺼번에 DB에 저장하기

 

test_ado.zip

인터넷을 검색해보면 알겠지만, DB자료를 엑셀로 불러들이는 구문은 쉽게 접할 수 있습니다.

하지만 방대한 엑셀자료를 DB로  저장하는 구문은 그리 많지 않습니다.

 

첨부화일은 아주 간단한 그러면서도 구문을 조금만 분석하면 쉽게 응용할 수 있는 예제화일입니다.

미흡하지만 엑셀로 DB연동 프로그램을 작성하는 분에게 도움이 되길 바랍니다. 

 

Sub append_to_DB()
Dim adodbRecord As Object
Dim strConnect As String
Dim strSQL As String
Dim varAdddata As Variant, i As Long
    strConnect = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & _
      ThisWorkbook.Path & "\test_access.mdb"
    'strConnect = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & _
      "\\127.198.97.15\공유폴더\test_access.mdb"

    '서버접속인 경우
      
    strSQL = "SELECT Table1.* FROM Table1"
    Set adodbRecord = CreateObject("ADODB.Recordset")
    adodbRecord.Open strSQL, strConnect, 2, 3
    '이상 DB에 접속하는 전형적인 구문
    
    '엑셀자료를 DB에 집어넣습니다.
    varAdddata = Sheets("Sheet1").Range("A2:B" & Cells(65536, 1).End(xlUp).Row).Value
    With adodbRecord
      For i = 1 To UBound(varAdddata)
        .AddNew
        .Fields("name") = varAdddata(i, 1)
        .Fields("content") = varAdddata(i, 2)
      Next i
      .Update
    End With
   
    MsgBox "엑셀자료를 성공적으로 DB에 저장하였습니다.", vbInformation
End Sub


Sub from_DB()
Dim adodbRecord As Object
Dim strConnect As String
Dim strSQL As String
Dim varAdddata As Variant, i As Long
    Sheets("Sheet1").Range("F2:G65536").ClearContents
   
    strConnect = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & _
      ThisWorkbook.Path & "\test_access.mdb"
    strSQL = "SELECT Table1.* FROM Table1"
    Set adodbRecord = CreateObject("ADODB.Recordset")
    adodbRecord.Open strSQL, strConnect, 2, 3
   
    Sheets("Sheet1").Range("F2").CopyFromRecordset adodbRecord
   
    MsgBox "성공적으로 DB자료를 엑셀로 불러들였습니다.", vbInformation
End Sub

 

 

추가로 ADO에 관심이 있다면 아래 링크도 참고하시기 바랍니다.

http://blog.naver.com/atmyhome/90036541078

 

 

수정이력)

130108 엑셀2007이상 버전에서도 작동되도록 첨부파일을 수정하였습니다. 

728x90
반응형
:
Posted by mapagilove