Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

External Datas - DAO_004

ODC..office data connection 화일만들기

  • 데이타/외부데이타/데이타가져오기 메뉴
  • OLE DB Provider
  • ODBC

DAO를 프로그래밍적으로 활용하는 것을 하기전에
외부데이타(External Datas)를 수작업으로 끌어 오는 것을
좀 설명을 해달라고 하시는 분들이 계셔서..
잠깐 설명을 하는 것이 좋을 것 같다..
두가지 방법중에서 하나는 간단하고



다른 하나는 앞으로 전개될 DAO페이지에서 같이 다루어 가게 될것이다
간단한것은 데이타가져오기
앞으로 계속 설명이 될것은 새 쿼리만들기[DAO를 하다 보면 필연적으로 알게 되는것]
그러니, 둘중에 외부데이타자져오기만을 해보도록 하자
이것을 해보아야 DAO를 활용하여 프로그래밍적으로 데이타를 갖여올것인지
수동으로 작업을 해서 갖여 올것인지..가름할수 있을것이다
다시 말해 DAO혹은 ADO를 왜 활용하여야 하는지 알수 있게 될것이다

아래의 그림과 같이 엑셀시트를 열고
데이타/외부데이타가져오기/데이타가져오기를 하면
대화상자가 하나 나타난다
외부데이타를 가져온 경험이 없는 분들은 황당하다..



우잉..데이타원본이라는 것이 도대체 뭐야??!!!
열리는 폴더의 이름도 [my data sources]라고 되어있다
Data Source.. 데이타원본..
수십년간의 데이타를 엑셀에 담을수는 없다
어느 곳인가 데이타창고를 별도로 지어 놓고
필요한 것만 불러서 사용하는것이 논리적이고 합리적이고 효율적이다
또한 데이타원본화일을 이미만들어 놓은것을 사용하기도 하고
(물론 사용자가 만들어 놓거나 MS에서 쌤플로 준비해 놓았던가)
새로 데이타원본을 만들어서 사용하기도 한다
그러니 데이타원본을 만들줄 알아야 할것이다

데이타원본화일을 오른쪽마우스로 크릭하고 속성창을 열면
화일명의 확장자가 [화일명.ODC]라고 되어있다
ODC가 뭐에 약자인가
Microsoft Office Data Connection의 약자 ODC 인것이다
이화일을 텍스트편집기(메모장)로 열어보면
주절..주절 뭐가 많이 작성되어있다
이것은 데이타원본에 대한 정보를 담고 있는 문자열정보일 뿐이다
원하는 데이타 원본은 아닌것이다

데이타 원본과 엑셀을 연결하는 연결고리에 대한 정보만
담아 놓고 있는것이다



외부데이타와 연결이 된다고 하는것은
엑셀을 몇십배 파워풀하게 활용할수 있다는것을 의미한다
여러분들의 컴퓨터와 프린터와 연결할때
다양한 프린터와 연결할 수 있다
그런데 다양한 프린터나 스캔너와 연결하기 위하여서는 중간에
연결고리가 되는 Driver라는 작은 프로그램이 있어야 한다
프린터를 세팅할때 다양한 Driver중에서 유효한 드라이버를
선택하여 세팅을 하는 것과 같은 요령이다
위의 경우는 장비와 장비를 연결하는 것이고
엑셀과 다양한 데이타창고의 연결은 소프트웨어와 소프트웨어의
연결이 되는 것이다

엑셀에서 억세스의 테이블과 연결한다고 가정하고
연결하는 과정을 보도록 하자
방법은 2가지인데 하나는 ODBC 라는 드라이버로 접근하는것이
있고 OLE DB Provider라는 드라이버로 접근하는 경우가 있다
OLE DB Provider연결이 최신기술이니
여기에서는 OLE DB Provider를 사용하도록 하자
데이타가져오기메뉴를 크릭하고 나타나는 데이타원본화일대화상자에서
새원본버튼을 크릭하고



아래와 같은 데이타원본의 성질에 따라서 선택이 틀려진다
다양한 선택중에서
기타/고급을 선택해 보도록 하자
이렇게 하면 통합적인 다양한 정보공급자(Provider)리스트를
나타내는 대화상자를 보게 된다
하드웨어를 사용할때도 이렇게 다양한 드라이버의 선택리스트를 본적이 있을것이다..마찬가지 원리인것이다



여기에서 Microsoft Jet 4.0 OLE DB Provider를 선택한다
이것이 Access데이타베이스와 연결을 중간에서 도와주는
Driver 프로그램인것이다
데이타베이스와의 연결중간역활이 ODBC였을때는
Driver라고 하고 OLE DB Provider에서는 이것을
Provider라고 하지만 별 의미있는 것은 아니다..
그냥 차별화 구분시키기 위하여 그렇게 이름을 붙였을뿐이다



다음 버튼을 크릭하면 아래와 데이타원본화일 odc 화일이 만들어진다


차례대로 확인버튼을 크릭하고 최종적으로 열기 버튼을 크릭하면
odc화일이 열결정보로 데이타원본의 데이타를 갖여오게 되고
최종확인 버튼을 크릭하면 워크시트에 뿌려지게 된다
각자가 꼭 몇번 odc화일을 만들어보고
연결테스트를 해보시기 바란다

다음에는 이 해당 odc화일을 불러서 실행만 열면된다



위에서 몇개의 절차를 걸쳐서 만들어진 내용은
odc화일에 다음과 같은 정보가 저장된 하나의 텍스트문서일뿐이다
일일이 매번 연결할때마다 위의 절차를 거치는 것을
텍스트문서로 요약하여 그냥 이것만 연결하면 프로그래밍적으로
이 내용을 읽고 데이타를 엑셀에 뿌려주는것이다

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;
Data Source=C:\Users\허성덕\Desktop\englishVidios.mdb;
Mode=Share Deny None;Extended Properties="";
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False

이렇게 수동으로 데이타베이스의 정보를 끌어 올것인가??
아니면 DAO를 활용하여 프로그래밍적으로 정보를 갖여 올것인가??
여기에서는 이제 부터 DAO를 활용하여 프로그래밍적으로
정보를 보내고 받고를 하고자 하는 것이다

위의 복잡한 절차를 간단하게 프로그래밍을 하자는 이야기다
왜 DAO나 ADO가 필요한지를 이해시켜드리기 위한것이니
다음 페이지부터는 DAO를 계속 간다