엑셀과 SQL 서버 연결하기 :: SQL_CONN 명령문 사용법
엑셀 SQL 연결 명령문 목차 바로가기
요약
SQL_CONN 명령문은 SQL 서버와 엑셀을 연결한 후, ADO 개체를 반환하는 함수입니다.
명령문 구문
DB = SQL_CONN ( SQL연결문자열 )
사용된 인수 및 변수 알아보기
인수 | 설명 |
SQL연결문자열 [String] |
SQL 연결 문자열입니다. (ADO.NET 연결 문자열을 사용합니다.)![]() |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] SQL_CONN 명령문예제파일
상세 설명
SQL_CONN 함수는 ADODB 라이브러리로 엑셀과 SQL 서버를 연결하는 함수입니다.
엑셀 VBA를 사용하여 SQL 서버를 연결할 때에는 크게 OLEDB와 ODBC 방식을 사용합니다.
항목 OLEDB ODBC 드라이버 설치 엑셀에서 기본으로 제공하는
ADO 라이브러리 사용ODBC 별도 드라이버 설치 필요 지원되는 OS 32/64비트 윈도우 32/64비트 윈도우, 리눅스, Mac 지원되는 개체 .Net 6/7 .Net 6/7, UnixODBC, jODBC, iODBC 등 지원되는 DB 대부분의 RDBMS를 지원 대부분의 RDBMS + NoSQL, MongoDB 등 OLEDB보다 다양한 DB에서 지원 속도 매우 빠름 OLEDB와 ODBC 방식은 모두 .Net 개체로서 SQL에 접속하기 위한 방식으로 대부분 동일합니다. 하지만 엑셀 VBA로 ODBC를 사용할 경우, 별도 드라이버를 설치해야 하므로, 대부분의 경우 VBA로 SQL를 연결할 때에는 OLEDB를 사용하는 것이 더욱 편리합니다.
실전 사용 예제
- SQL 서버 연결 테스트 하기
Dim DB As Object Set DB = SQL_CONN("Server=tcp:azrure-oppadu-test-123.database.windows.net,1433...") If IsEmpty(DB) Then MsgBox "서버 연결에 실패하였습니다."
엑셀과 SQL 서버 연결하기 :: SQL_CONN 명령문 사용법
SQL_CONN 명령문 전체 코드
Function SQL_CONN(CONN_STRING As String) As Object '############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '▶ SQL_CONN '▶ SQL 연결 문자열로 OLE DB 연결 후 ADODB 커넥션 개체를 반환합니다. '▶ 인수 설명 '_____________Connection : SQL OLE DB로 연결할 연결문자열(Connection String)을 입력합니다. '▶ 사용 예제 'Dim DB As Object 'Set DB = SQL_CONN("Server=database.windows.net,1433;User ID=oppadu;Password=123;") '############################################################### Dim DB As Object Set DB = CreateObject("ADODB.Connection") If InStr(1, CONN_STRING, "Provider=", vbTextCompare) = 0 Then CONN_STRING = "Provider=SQLOLEDB;" & CONN_STRING On Error GoTo EH_CONN: DB.ConnectionTimeout = 3 DB.Open CONN_STRING If DB.State = 1 Then Set SQL_CONN = DB Else GoTo EH_CONN End If Set DB = Nothing Exit Function EH_CONN: MsgBox "서버에 연결할 수 없습니다." & vbNewLine & "인터넷 연결 또는 서버 상태를 확인하세요.", vbInformation Set DB = Nothing End End Function
명령문 동작원리 단계별 알아보기
- ADODB 개체 선언 후 연결 문자열 만들기
Dim DB As Object Set DB = CreateObject("ADODB.Connection") CONN_STRING = "Provider=SQLOLEDB;" & CONN_STRING
- ADO 연결하기 후, DB가 비어있을 경우 오류처리하기
On Error GoTo EH_CONN: DB.ConnectionTimeout = 3 DB.Open CONN_STRING If DB.State = 1 Then Set SQL_CONN = DB Else GoTo EH_CONN End If Set DB = Nothing
- DB가 비어있을 경우 안내메시지 출력 후 명령문 종료
EH_CONN: MsgBox "서버에 연결할 수 없습니다." & vbNewLine & "인터넷 연결 또는 서버 상태를 확인하세요.", vbInformation Set DB = Nothing End
- SQL 서버 연결 테스트 하기