データベース接続用オブジェクトについて(ADODB.Connection)

データベースに接続するためのADODB.Connectionオブジェクトの宣言コード

'接続用オブジェクトの作成
Dim zzDB_Con As Object
Set zzDB_Con = CreateObject("ADODB.Connection")

Set zzDB_Con = Nothing

Accessデータベースを操作するには、まずデータベースファイルの作成を行う必要がありました

次に必要なのが、そのデータベースと接続を行うことです
この接続という操作を行って初めてデータベースの操作が可能になります

その際に使用するのが記事コードのADODB.Connectionオブジェクトになります
これはインスタンスの作成を行う必要がありますので、最初にCreateObject関数でインスタンスの作成を行います

このオブジェクトは単にデータベースとの接続だけを行うものでは無く、接続したデータベースにSQL文を実行することが出来ます
基本的には接続とSQL文の実行の2つを実行するオブジェクトと認識してください

そしてSQL文の実行に関して、このオブジェクトではレコードを取得する必要が無い場合に主に利用します

例えば、UPDATE文はデータベースのデータを更新しますが、結果を取得しません
そういった構文に利用します
なのでSELECT文のようなレコードの取得を行う構文はこのオブジェクトでは利用できません

コード解説

Dim zzDB_Con As Object

ADODB.Connectionを代入させる変数です
事前バインディングの場合は専用の型を使用しますが、実行時バインディングを利用しますのでここではObject型で指定します

Set zzDB_Con = CreateObject("ADODB.Connection")

CreateObject関数でインスタンスの作成を行っています
Class名はADODB.Connectionと指定します

この作成後にデータベースの操作を行います

Set zzDB_Con = Nothing

操作が完了したらオブジェクト変数なので、最後に解放して初期化しておきます

実際の使用について

これで作成を実行した後に、使用するメソッドは主に3つになります
まずはデータベースとの接続を行うOpenメソッド接続を解除するCloseメソッドSQL文の実行を行うExecuteメソッドになります

OpenメソッドとCloseメソッドはセットで使用します
Openメソッド使用後はデータベースが使用中になります
この状態を解除するのがCloseメソッドなので必ず使用してください

Executeメソッドは、引数にSQL文を文字列で指定することで接続しているデータベースに対して実行します
上記にも解説したようにレコードの取得を必要としない構文を実行します

Accessデータベースを操作するうえで利用するのは、あとレコードを代入させるためのADODB.Recordsetオブジェクトを使用します

ちなみに、ここで使用しているADODB以外にDAOというオブジェクトもありますが、こちらはADODBより古いオブジェクトになります
こちらはこちらで利点もありますし、使用感も似ていますが両方を覚える必要はありません
せめてインスタンス作成が同じで利用できるなら良いのですが、別のインスタンスを作成する必要があるので両方の利用は面倒ですね