この特集のトップページへ
Appendix A:ADOコンポーネントによるデータベースアクセス

見出し A.2 データベースへの接続と切断

 最初に,データベースに接続する方法と,接続を切断する方法について説明する。データベースと接続するには,ADODB.Connectionオブジェクトを用いる。

 その一連の流れは,次のようになる。

1)ADODB.Connectionオブジェクトを実体化する

 はじめに,次のようにしてADODB.Connectionオブジェクトを実体化する。


   Dim objCon As ADODB.Connection
   Set objCon = CreateObject("ADODB.Connection")

 ここでは,ADODB.Connectionオブジェクトを格納する変数名をobjConとしたが,もちろんほかの名前でもかまわない。

2)Openメソッドを呼び出してデータベースと接続する

 次に,ADODB.ConnectionオブジェクトのOpenメソッドを使ってデータベースに接続する。


   objCon.Open ConnectionString, UserID, _
               Password, Options

 各引数の意味は,次のとおりである。

ConnectionString
 データベースの接続情報を示す文字列。接続情報を示す文字列が事前にADODB.ConnectionオブジェクトのConnectionStringプロパティに設定してあれば,省略可能である。
 この文字列の値はデータベースエンジンの種類によって異なる。詳細は,ADOのオンラインヘルプを参照してもらうことにして,ここではAccessのMDBファイル(Jetエンジン),ODBCデータベース,SQL Serverと接続する方法についてのみ説明する。
 MDBファイルと接続する場合には,次の書式の文字列を指定する。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MDBファイル名;
※古いJetエンジンバージョン3.51を使う場合には,“Provider=Microsoft.Jet.OLEDB.3.51”とする。
 ODBCデータソースと接続する場合には,次の書式の文字列を指定する。
DSN=システムデータソース名;UID=ユーザー名;PWD=パスワード;
UID=ユーザー名;PWD=パスワード;は省略可能
SQL Server(もしくは,その完全互換製品であるMSDE(Microsoft Database Engine))と接続する場合には,次の書式の文字列を指定する。
Driver=SQL Server;Server=サーバー名;UID=ユーザー名;PWD=パスワード;Database=デフォルトデータベース名;
UID=ユーザー名;PWD=パスワード;Database=デフォルトデータベース名;は省略可能。ローカルのサーバーに接続するときには,“Server=(local);”と指定する。
UserID
 接続するユーザー名を指定する。省略可能。
Password
 データベースに接続する際に用いるパスワードを指定する。省略可能。
Options
 同期接続が非同期接続かを指定する。同期接続の場合にはadConnectUnspecified定数,非同期接続の場合にはadAsyncConnect定数を指定する。省略可能で,省略した場合には同期接続とみなされる。非同期通信時には,データベースのアクセスが完了すると,データベース処理を待たずに次の処理(次の行に書かれた文)に移行し,処理が完了したら特定のイベントが発生する,という処理を実現できるようになる。ただし,本連載では非同期接続は使わないことにする。

3)必要なデータベース処理を実行する

 2)の手順によって,すでにデータベースに接続されているので,データベーステーブルの操作など,必要な処理を実行する。具体的な処理の実装方法については,次節で説明する。

4)Closeメソッドでデータベースを切断する

 データベースの操作が終わったら,ADODB.ConnectionオブジェクトのCloseメソッドを呼び出して,データベースを切断する。


   objCon.Close

5)ADODB.Connectionオブジェクトを解放する

 最後に,利用していたADODB.Connectionオブジェクトを解放する。ADODB.Connectionオブジェクトを解放するには,ADODB.Connectionオブジェクトを保持していた変数にNothingを代入する。


   Set objCon = Nothing

prev Appendix A 3/6 next
本文のトップへ | Appendix Aのトップへ