프로젝트 및 실습/VBA

[VBA] Access DB 연결 및 Select 실행

jooona 2022. 7. 14. 20:00
반응형

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의 결괏값이 작성됩니다.

반응형