ODBC 드라이버를 이용한 DB 쿼리 가능한 Excel 파일



어느정도 편의성 부분이 추가 되서 공개합니다.


사용자 PC에 ODBC 드라이버가 설치 되어 있어야 사용가능합니다.


각 DB에 맞는 ODBC 드라이버가 설치되어 있다면 모두 사용 가능합니다.


엑셀 시트 안에 콤보 박스를 이용해 ODBC 드라이버를 선택할 수 있습니다.



버전 1.0

db_manager_v1.0.xlsm

퍼가는것은 좋지만 출처를 꼭 밝혀주세요.


좀 더 좋은 기능 아이디어가 있다면 댓글로 알려주세요.

  1. 주허니 2016.07.27 16:10

    DB에서 엑셀로 연결해볼려고하는데 참고할께요~ ㅠ 초보라서 잘쓰겠습니다 ^^

엑셀 파일로 만들어서 올려두었습니다.

http://acidpop.tistory.com/166





업무중에 Oracle DB 의 값들을 Select 하여 조회된 데이터를 복사하고

엑셀에 붙여 넣어 봐야할 업무가 있었다.

Oracle SQL Developer 와 엑셀을 왔다갔다 하다 보니 반복된 작업이 너무 많아 찾아 보던중

엑셀에서 Oracle DB 에 직접 붙어 데이터를 select 할 수 있었다.

다음 매크로들을 이용하여 DB에 접속하면 된다.

그 전에 Visual Basic 창에서 도구 -> 참조 메뉴를 클릭 한 다음

사용가능한 참조 목록에서

Microsoft ActiveX Data Objects 2.8 Library

Microsoft Excel 15.0 Object Library 를 체크하여 추가해주어야 한다.




DBSERVICENAME 부분은 각 DB 이름에 맞게 변경하여 사용


 
' AdoCn 변수, strDBIp 는 Oracle DB 의 IP 주소
Public Function ConnectDB(ByRef AdoCn As ADODB.Connection, strDBIp As String) As Boolean

    AdoCn.CursorLocation = adUseClient
    ' 1111 은 DB의 포트 번호이다. 각 환경에 맞게 Port 를 설정하면 된다.
    ' DBSERVICENAME 은 DB의 서비스 이름이다. 각 환경에 맞게 변경하면 된다.
    AdoCn.ConnectionString = "Provider=MSDAORA;Data Source=" + strDBIp + ":1111/DBSERVICENAME;User ID=scott;Password=tiger"
    AdoCn.Open
    
    If AdoCn.State = adStateOpen Then
        ' adStateOpen 이면 연결 됨
        ConnectDB = True
        Exit Function
    Else
        ' adStateClose 이면 연결 안됨
        ConnectDB = False
        Exit Function
    End If
    
End Function


Sub GetDB()
    Dim AdoCn   As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim bOpen As Boolean
    Dim szQuert As String
    Dim szDbIP As String

    Set rs = New ADODB.Recordset
   
    Set AdoCn = New ADODB.Connection


    szDbIP = "127.0.0.1"

    bOpen = ConnectDB(AdoCn, szDbIP)

    If bOpen Then
        szQuery = "SELECT * FROM DB_TABLE_NAME WHERE ID = 10"
        
        Set rs = AdoCn.Execute(szQuery)
        
        ' rs 에 담겨져 있는 객체를 A1 셀에 붙여넣기
        Range("A1").CopyFromRecordset rs
        
        AdoCn.Close

    Else
        MsgBox("DB Connect Failed")
    End if
End Sub


  1. HDUD 2014.06.26 13:47

    안녕하세요 잘돌아가네요. 좋은 정보 정말로 감사합니다.^^ 그런데 맨아래 52번줄의 End Function은 End Sub로 고쳐야 하는거 같네요.

  2. BlogIcon Acidpop acidpop 2014.06.30 11:12 신고

    앗 감사합니다 ^^

 

MS Word 에서 한글에서 사용하던 자간 조정, 줄 간격 조정을 하기 위해 사용 하는 방법이다.

1. 매크로를 먼저 등록한다. 등록 하는 방법은 다음과 같다.

 Word 홈 버튼을 누른 다음 옵션을 선택하여 리본 사용자 지정 탭으로 간다.

오른쪽을 보면 개발 도구 라는 항목이 체크가 안되어 있을것이다.

체크한다.


리본 메뉴를 보면 개발 도구 라는 항목이 추가 된것을 볼 수 있다.

 

항목 중 Visual Basic 을 클릭한다.

아래의 코드를 복사 한 다음 붙여 붙여 넣기!

>※ 아래는 각 기능 매크로의 구현부이다.

Sub 자간늘임()

    Tt = Selection.Font.Spacing

    With Selection.Font

        .Spacing = Tt + 0.1

    End With

End Sub

 

Sub 자간줄임()

    Tt = Selection.Font.Spacing

    With Selection.Font

        .Spacing = Tt - 0.1

    End With

End Sub

 

Sub 줄간줄임()

    Dim Tt As Single

    Tt = Selection.Paragraphs(1).LineSpacing

        With Selection.ParagraphFormat

            .LineSpacingRule = wdLineSpaceMultiple

            .LineSpacing = Tt - 0.1

            .DisableLineHeightGrid = True

        End With

End Sub

 

Sub 줄간늘임()

    Dim Tt As Single

    Tt = Selection.Paragraphs(1).LineSpacing

    With Selection.ParagraphFormat

        .LineSpacingRule = wdLineSpaceMultiple

        .LineSpacing = Tt + 0.1

    End With

End Sub



 

Visual Basic 창에서 디스크  모양 버튼을 눌러 저장 한 다음 Visual Basic 은 종료한다.

2. 단축키 등록
1. Word 의 시작 버튼을 클릭한 다음 Word 옵션을 클릭한다.
 




2. Word 옵션에서 사용자 지정 -> 바로 가기키 : 사용자 지정 버튼을 클릭




3. 키보드 사용자 지정 화면에서 범주(C) 의 스크롤을 맨 아래로 내려보면 "매크로" 라고 보인다.

 

매크로를 클릭하면 만들었던 매크로 목록이 나타나는데 단축키를 지정할 매크로를 선택하고 원하는 단축키를 누른다.

그러면 새 바로 가기 키(N): 에 누른 단축키가 나타나는데 맞게 눌러졌는지 확인하고 지정 버튼을 클릭하여 단축키를 등록한다.

 

저장할 파일 이 Normal.dotm 이면 모든 워드 문서에 매크로가 정의 된다.

단, 저장할 파일(V): 을 Normal.dotm 이 아닌 현재 작성중인 문서로 지정하면 현재 열려 있는 문서에만 해당 매크로가 지원된다.

 

필자는 한글의 단축키와 동일하게 지정하였다.

 

자간 늘임 -> Alt + Shift + W

자간 줄임 -> Alt + Shift + N

줄간 늘임 -> Ctrl + Shift + A

줄간 줄임 -> Ctrl + Shift + Z

 

 


  1. ㅁㄴㅇㄹ 2013.07.21 09:11

    정말정말 감사합니다.

  2. 행인 2013.11.06 19:32

    정말 잘 봤습니다. !!! 한글보다 워드를 많이 사용하는데 이런 대박팁이!!

  3. 비알못 2016.03.29 19:38

    이렇게 빠른 답변을 달아주실 줄 몰랐습니다.
    너무너무 감사드리며
    매우 큰 도움이 되었습니다!
    고맙습니다!!! ^________________________________^

  4. 비알못 2016.04.25 14:48

    비주얼 베이직을 모르는 사람입니다 ㅠ
    비주얼 베이직 저장할때 문서형식을 어떻게 해야 적용이 되나요 ?
    마지막 메크로 설정시 저장할 파일을 normal.dot로 넘기는 순간 오른쪽 메크로 들이 사라집니다...ㅠ
    이 기능 꼭 쓰고 싶어요 ㅠㅠ 도와주세요 ㅠㅠ
    2년이 넘은 글인데...ㅠ 혹시 답변 주시려나 모르겠네요 ㅠㅠㅠㅠ

    • BlogIcon Acidpop acidpop 2016.03.29 17:33 신고

      안녕하세요

      코드를 저정 하실떄
      왼쪽 화면에 보시면
      "Normal" 이랑 "Project (문서1)"

      이런식의 메뉴가 보일겁니다.

      이중에서 Normal 아래의 NewMacros 에 코드를 저장해주셔야 합니다.

      project 에 저장하시면 해당 문서에만 매크로가 저장됩니다.

  5. 차재영 2016.06.27 18:02

    정말 고맙습니다.
    잘 사용하겠습니다. ^^

  6. 최재익 2019.06.14 19:42

    정말 감사합니다. 바로가기 키 지정을 하면서 저런 명령어들을 내가 원하는 대로 커스터마이징 할 수는 없을까 항상 궁금했었는데 개발자 도구로 '자간 늘임' 기능과 '자간 줄임' 기능을 쉽게 추가할 수 있게되어 정말 감사합니다!!


구글 클라우드 커넥트

Google Cloud Connect for Microsoft Office


구글 클라우드 문서 편집을 MS-Office 에서 사용 할 수 있다..

구글이 MS Office 라는 툴에 자신들의 플랫폼을 적용시켜버렸다.. ㅋㅋ


다운로드는

http://www.google.com/apps/intl/en/business/officeconnect.html

여기서 받으시면 되고..

+ Recent posts