본인은 다잡님이 처음에 정규식을 썼을때 적지않은 충격을 먹었다.(사실 그의 코드는 늘 새롭고 신선하다)
지금 adoDB를 통한 sql구문을 사용하는 지금이 딱 그때와 같다.
어셈블리언어처럼 기본적으로 형식적인 구문들이 있어서 최대한 sql구문을 안 배우려고 했는데 배워야 하는데는 다 이유가 있는거 같다.
엑사남님 강의는 참 간결하고 미원(?) 안들어간 깔끔함이 있으니 꼭 한번*10 보시길 바란다.
처음 강의는 엑셀을 DB화 하여 데이터를 처리하는 방식이고 / 두번째 DB강의는 엑세스를 DB화 하여 데이터를 처리하는 방식이다.
본인이 오늘 할 방식은 mySql DBMS에 접속하여 원하는 DB의 table을 가져오는 구문이다.
DB 접속이후에는 sql구문으로 쿼리를 작성하여 db에 접속하게 되는데 db에 접속하는 구문이 오늘 글에 핵심이다.
strCon =
"DRIVER={MySQL ODBC 8.0 UNICODE Driver};"
_
' DB 버전
"SERVER = localhost;"
_
' 웹이 아닌 본인 컴이면 localhost
"DATABASE = DB이름;"
_
' DB 이름 / sql문에서 선언해도 됨(생략가능)
"UID=계정ID;PASSWORD=패스워드;OPTION=3"
' ID, 패스워드
더보기
Option Explicit
Sub Haja_Guid_mySql()
Dim StrGuid$: StrGuid = "{B691E011-1797-432E-907A-4D8C69339129}" '= ADODB참조
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid StrGuid, 0, 0 '= 가장 최신버전
On Error GoTo 0
Call Haja_Adodb_mySql
End Sub
Sub Haja_Adodb_mySql()
Dim Rs As New ADODB.Recordset '= latebinding : CreateObject("ADODB.Connection")
Dim strSQL$, strCon$
Dim i&
strCon = " DRIVER={MySQL ODBC 8.0 UNICODE Driver}; " & _
" SERVER = localhost;" & _
" USER = root ; PASSWORD = 2247 ; OPTION=3"
strSQL = " SELECT emp_no AS 순번 , title AS 직업 , from_date AS 입사일 , to_date AS 퇴사일 " & _
" FROM employees.titles " & _
" limit 1000 ;"
'= 헤더이름 변경 emp_no -> 순번 , title -> 직업 , from_date -> 입사일 , to_date -> 퇴사일
'= employees 데이터베이스 / tilles 테이블 명
'= limit 1000 : 데이터중 1000개만 가져와라 / 실질적인 데이터는 49만개
On Error GoTo haja
Rs.Open strSQL, strCon
With Sheets("title")
For i = 0 To Rs.Fields.Count - 1 '= 헤더값 출력구문
.Cells(1, i + 1) = Rs.Fields(i).Name
Next i
Range(.[a1], .[a1].End(2)).Font.Bold = True
If Rs.EOF Then
MsgBox "조건에 맞는 데이터가 없습니다."
Rs.Close
Set Rs = Nothing
Exit Sub
Else
.[a1].CurrentRegion.Offset(1).Clear
.[a2].CopyFromRecordset Rs
End If
With .UsedRange
.Font.Size = 9
.HorizontalAlignment = xlCenter
.Borders.LineStyle = 1
End With
End With
Rs.Close
Set Rs = Nothing
Exit Sub
haja:
MsgBox "검색을 할 수 없습니다.", 64
End Sub
'ADO' 카테고리의 다른 글
[ADO] 구글 주소록 한글 깨짐을 해결하자 (0) | 2023.02.17 |
---|---|
[ADO] 개봉된 영화 중 분기별 매출과 개봉 영화수를 구해보자 (0) | 2022.06.02 |
[ADO] sql : Pivot 함수를 이용하자 (0) | 2022.06.01 |
Early binding 이제 자동으로..(Feat.Guid) (0) | 2022.05.03 |
댓글