반응형
Excel에서 VBA를 사용하여 Access DB를 읽어오는 방법을 살펴보겠습니다.
우선 Access를 실행시켜서 테이블을 마음대로 하나 만들어줍니다.
그리고 VBA에서 module을 하나 만들어 다음의 코드를 작성해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
Sub accdb_select()
Dim dbCon As ADODB.Connection '데이터베이스와의 연결을 담당하는 객체
Dim dbRs As New ADODB.Recordset '데이터 탐색 및 조작을 담당하는 객체
Dim dbQuery As String '실행할 sql Query
Dim tableName As String
Dim targetSht As Worksheet
Set dbCon = New ADODB.Connection 'Connection 생성
Set dbRs = New ADODB.Recordset 'RecordSet 생성
tableName = "table3" '검색할 테이블 명
Set targetSht = Sheet5 '검색된 데이터를 붙여 넣을 Sheet
dbCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\db.accdb;" 'db 연결 (Source= 뒤에는 accdb가 저장된 경로)
dbCon.Open
dbQuery = "SELECT A,B,C,D FROM " & tableName '실행할 Query문 작성
dbRs.Open dbQuery, dbCon, adOpenStatic, adLockReadOnly, adCmdText 'Query 실행
targetSht.Range("A1").CopyFromRecordset dbRs '실행한 Select문을 targetSht에 복사
dbRs.Close
dbCon.Close
End Sub
|
cs |
코드 이해를 위해 주석을 작성해두었습니다. DB의 위치와 쿼리문, targetSht 등은 자신의 상황에 맞게 변경하시면 됩니다.
위의 코드를 실행하면?
자신이 targetSht로 지정한 Sheet에 Select의 결괏값이 작성됩니다.
반응형
'프로젝트 및 실습 > VBA' 카테고리의 다른 글
[VBA] Comment Object 삽입 (0) | 2022.08.01 |
---|---|
[VBA] Access DB 내 모든 테이블 List 출력 (0) | 2022.07.14 |
[VBA] Worksheet_change 이벤트 (Sheet 내 값 수정 감지) (0) | 2022.07.08 |
[VBA] Protected, Lock을 이용해 시트 잠그기 (0) | 2022.06.14 |
[VBA] Progressbar 사용법 (0) | 2022.06.14 |