Sub conenctDB()
Dim conn As ADODB.Connection ' DB 연결을 위한 변수
Dim dbRecset As ADODB.Recordset ' DB Record 저장을 위한 변수
Dim iRow As Long ' Record 행의 갯수 저장을 위한 변수
Dim iColumn As Long ' Record 열의 갯수 저장을 위한 변수
Dim sSQL As String ' SQL문을 저장하기 위한 변수
Set conn = New ADODB.Connection ' ODBC 객체생성
' --------------------------------------------------------------
' Oracle 접속
' Server = Server 이름
' Uid = 아이디
' Pwd = 패스워드
' --------------------------------------------------------------
conn.ConnectionString = "Driver={Microsoft ODBC for Oracle};" & _
"Server=서버이름;" & _
"Uid=아이디;" & _
"Pwd=패스워드;"
conn.Open
' ============================================================
' 쿼리문을 입력하고 레코드 값을 저장
' ============================================================
sSQL = "select OWNER, TABLE_NAME, COLUMN_NAME, " & _
"REPLACE(REPLACE(COMMENTS,CHR(10),CHR(1)),CHR(13),CHR(2)) AS COMMANT from all_col_comments " & _
"where table_name LIKE 'TECF%'" & _
" order by 2"
Set dbRecset = New ADODB.Recordset
dbRecset.CursorLocation = adUseClient
' =============================================================
' 커서 이동방법과 레코드를 읽어만 올수 있도록 설정
' =============================================================
dbRecset.Open Source:=sSQL, ActiveConnection:=conn, CursorType:=adOpenForwardOnly, _
LockType:=adLockReadOnly, Options:=adCmdText
dbRecset.MoveFirst ' 레코드의 처음으로 이동
' =============================================================
' DB에서 쿼리문에 의한 값들을 엑셀 시트에 저장
' =============================================================
For iRow = 1 To dbRecset.RecordCount
For iColumn = 1 To dbRecset.Fields.Count
Worksheets(1).Cells(iRow + 5, iColumn + 1).Value = dbRecset.Fields(iColumn - 1).Value
Next iColumn
dbRecset.MoveNext
Next iRow
' ==============================================================
' DB연결을 종료하고 객체 저장변수와 레코드 저장변수를 초기화
' ==============================================================
dbRecset.Close
conn.Close
Set dbRecset = Nothing
Set conn = Nothing
End Sub