(엑셀ado)엑셀자료를 한꺼번에 DB에 저장하기 엑셀VBA 이야기2014. 11. 19. 11:44
(엑셀ado)엑셀자료를 한꺼번에 DB에 저장하기
인터넷을 검색해보면 알겠지만, 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이상 버전에서도 작동되도록 첨부파일을 수정하였습니다.
[출처] (엑셀ado)엑셀자료를 한꺼번에 DB에 저장하기...|작성자 앳마
'엑셀VBA 이야기' 카테고리의 다른 글
[ 엑셀 VBA ] 자동 저장 매크로 (0) | 2014.11.26 |
---|---|
사용자 원하는 순서대로 정리하기 (0) | 2014.11.22 |
엑셀 VBA 파일 읽기, 텍스트 파일 열기 예제; Excel Text File Read (0) | 2014.11.21 |
mdb(ADO) 작성 방법 프로그래밍 (0) | 2014.11.19 |
엑셀VBA - 타이머 (0) | 2013.03.29 |