Alt+F11을 눌러 VBA를 열어주세요.
도구 > 참조를 선택한뒤 참조에서 Microsoft ActiveX Data Object 6.1 Libary 체크박스를 체크해주세요.
이 참조를 선택해야 DB를 연결해서 사용할 수 있습니다.
이제 엑셀 파일을 열었을때 데이터를 불러오도록 Workbook_Open() 프로시저를 설정해 줍니다.
1
2
3
4
5
|
Option Explicit
Private Sub Workbook_Open()
Call 매입처DB불러오기
End Sub
|
cs |
엑셀 파일을 열었을때 실행시켜주는 프로시저 입니다.
모듈을 하나 만들어 DataBase연결() 프로시저를 만듭니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
Option Explicit
Dim Cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String
Sub DataBase연결()
On Error Resume Next
Dim a, b, c, d As String
a = "IP 어드레스" 'IP 어드레스
b = "DB 이름" 'DB
c = "ID" 'ID
d = "password" 'PW
Set Cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Cn.Open "Provider = SQLOLEDB;Data Source=" & a & ";Initial Catalog= " & b & ";User ID = " & c & ";Password=" & d & ";"
End Sub
|
cs |
SQL Server(MS-SQL)에 연결을 시켜주는 프로시저 입니다.
마지막으로 매입처DB불러오기() 프로시저를 만들어줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
Sub 매입처DB불러오기()
On Error Resume Next
Call DataBase연결
SQL = "SELECT * FROM 매입처"
rs.CursorLocation = adUseClient
rs.Open SQL, Cn, adOpenStatic, adLockReadOnly
With Sheets("매입처관리")
If .Range("B4") <> "" Then '기존 데이터가 있다면
.Range("A4", Cells(Rows.Count, "H")).ClearContents '기존 데이터 삭제
End If
.Range("A4").CopyFromRecordset rs
End With
rs.Close
Cn.Close
End Sub
|
cs |
여기까지 완성하면 엑셀 파일을 열었을때 매입처관리 시트에 매입처 테이블의 데이터를 불러오게 됩니다.
'엑셀 vba > 발주관리(OLD)' 카테고리의 다른 글
발주관리#6 매입처 추가(등록) (0) | 2019.12.20 |
---|---|
발주관리#5 매입처 등록, 수정 폼 만들기 (0) | 2019.12.19 |
발주관리#3 매입처관리 시트 만들기 (0) | 2019.12.18 |
발주관리#2 매입처 테이블 만들기 (0) | 2019.12.18 |
발주관리#1 DB 연동 발주 관리를 시작하며 (0) | 2019.12.18 |