엑셀과 SQL 서버 연결하기 :: SQL_CONN 명령문 사용법

SQL 연결문자열로 엑셀과 SQL서버를 연결 후 ADODB 커넥션 개체를 반환하는 SQL_CONN 명령문 사용법을 알아봅니다.

# VBA

작성자 :
오빠두엑셀
최종 수정일 : 2022. 05. 26. 02:45
URL 복사
메모 남기기 : (1)

엑셀과 SQL 서버 연결하기 :: SQL_CONN 명령문 사용법

엑셀 SQL 연결 명령문 목차 바로가기
요약

SQL_CONN 명령문은 SQL 서버와 엑셀을 연결한 후, ADO 개체를 반환하는 함수입니다.

명령문 구문
DB = SQL_CONN ( SQL연결문자열 )
사용된 인수 및 변수 알아보기
인수 설명
SQL연결문자열
[String]
SQL 연결 문자열입니다. (ADO.NET 연결 문자열을 사용합니다.)
ado.net 연결문자열

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


상세 설명

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를 사용하는 것이 더욱 편리합니다.

실전 사용 예제
  1. 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
명령문 동작원리 단계별 알아보기
  1. ADODB 개체 선언 후 연결 문자열 만들기
    Dim DB As Object
    Set DB = CreateObject("ADODB.Connection")
     
    CONN_STRING = "Provider=SQLOLEDB;" & CONN_STRING
  2. 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
  3. DB가 비어있을 경우 안내메시지 출력 후 명령문 종료
    EH_CONN:
        MsgBox "서버에 연결할 수 없습니다." & vbNewLine & "인터넷 연결 또는 서버 상태를 확인하세요.", vbInformation
        Set DB = Nothing
        End
5 1 투표
게시글평점
1 댓글
Inline Feedbacks
모든 댓글 보기
1
0
여러분의 생각을 댓글로 남겨주세요.x