study/ADO 2012. 5. 2. 13:34

액세스 VBA 강좌_ADO_데이터 베이스에 접속

   

   

■ Contents

   

   

   

1.최신 데이터베이스에 접속

최신 데이터베이스를 참조할 때는 CurrentProject오브젝트의Connection속성을 이용한다.선언한 Connection 오브젝트 형태의 변수에 Set 성명을 사용하고 최신 데    이터베이스의 참조를 대입한다.

【서식】Set Connection = CurrentProject.Connection

Connection : Connection 오브젝트 형태의 오브젝트 변수

CurrentProject 오브젝트는 Access 애플리케이션으로 정의되고 있는 오브젝트이고  현재 사용중의 데이터베이스를 표현한다.Access2000으로 데이터베이스를 열면 자동적으로 ADO의 Connection 오브젝트가 작성된다.CurrentProjectObject의 Connection속성은 이 Connection 오브젝트를 참조한다.

【서식】Set Object = Nothing

Object : 오브젝트 변수

오브젝트 변수에Nothing을 대입하려면 그 변수와 오브젝트의 관계를 무효화 한다.이것에 따라 오브젝트가 사용하고 있었던 메모리 위의 영역은 삭제된다.

【서식】Object.Close

Object : 오브젝트 변수

Close 방법은 열려 있는 오브젝트를 닫는 처리를 한다.단지,오브젝트를 닫고 도 메모리에서는 삭제되지 않는다.속성을 설정하고 재차 오브젝트를 여는 것이 가능하다.

   

【사용 예】최신 데이터베이스에 접속하고 접속 정보 문자열을 Imeditewindow에 출력

Public Sub CnCurrentDb()
Dim cn As ADODB.Connection

'접속
Set cn = CurrentProject.Connection
Debug.Print cn.ConnectionString

'종료
cn.Close
Set cn = Nothing
End Sub

【실행 결과】(최신 데이터베이스에 접속하기 위한 접속 정보 문자 열)

단락 기호로 개행한다. 다만 ,실제로는 1 행에 연결됐던 문장이다.

Provider=Microsoft.Jet.OLEDB.4.0;
User ID=Admin;
Data Source=D:\OFFICE_2000\Access\Exsample1\Chap6.mdb;
Mode=Share Deny None;
Extended Properties="";
Jet OLEDB:System database=C:\PROGRA~1\COMMON~1\System\SYSTEM.MDW;
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
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

2.다른 데이터베이스에 접속한다

최신 데이터베이스 이외의 데이터베이스에 접속할 때는 다음의 순서로 한다.

   

1.Connection 오브젝트의 ConnectionString속성을 설정한다.

2.Connection 오브젝트의 Open 방법을 실행한다.

  • ConnectionString속성

    Connection속성은  데이터베이스에의 접속 정보를 보호한다. 키워드와 거기에 대입 하는 값으로 구성된다. 복수의 키워드를 지정하는 경우에는 세미콜론(;)으로 단락을 짓고 지정한다.

    【서식】Connection.ConnectionString = "키워드 1=값 1;키워드 2=값 2;

    Connection:Connection 오브젝트 형태의 오브젝트 변수
    키워드:접속에 필요한 키워드

    위의 실행 결과에 나타나는 키워드 중 생략할 수 없는 것은 Provider과 Data Source 이다 .

       

    ● Provider 키워드

      접속하는 데이터베이스의 종류를 표현한다.Access2000 형식의 데이터베이스에 접속

    하는 경우에는 Microsoft.Jet.OLEDB.4.0라고 말하는 값을 사용한다.

       

    ● Data Source 키워드

      접속하는 데이터베이스 파일 이름을 드라이브 이름에서 패스를 포함한 형태로 지정할

    수 있다.

  • Open 방법

    데이터 소스에의 접속을 연다

    【서식】connection.Open [ConnectionString]

    Connection:Connection 오브젝트 형태의 오브젝트 변수
    ConnectionString : 먼저 ConnectionString속성을 설정한 경우는 생략 가능

    Connection 오브젝트이고 Open 방법을 사용하면 데이터 소스에의 물리적인 접속을 확립할 수 있고 이 접속에 대하여 커맨드를 실행하고 그 결과를 처리하는 것이 가능하다.열려 있었던 Connection 오브젝트로의 조작이 완료하면 Close 방법을 사용하고 관련되는 모든 시스템 리소스를 해제한다.오브젝트를 닫고 도 메모리에서는 삭제되지 않기 때문에 그 오브젝트의 속성의 설정을 변경하고 Open 방법을 사용해도 한 번 열리는 것이 가능하다.오브젝트를 메모리에서 완전하게 삭제할 때에는 오브젝트 변수를 Nothing 으로 설정한다.

    【예】D:\Access2000\코드\대학 코드.mdb 에(로) 접속한다

    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
    & "Data Source=D:\Access2000\코드\대학 코드.mdb"
    cn.Open

  • 다른 Access 데이터베이스에 접속한다

    【사용 예】

    Public Sub CnAccess()
    Dim cn As ADODB.Connection

    '접속
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
    & "Data Source=D:\Access2000\코드\대학 코드.mdb"
    cn.Open

    MsgBox ("접속 성공")
    cn.Close
    Set cn = Nothing
    End Sub

   

  

   

<http://www.msaccess.co.kr/onlinele/list/basic/recordeset/ado/ado_7.htm>에서 삽입