|

|
|
 |
6.2 CreateObjectを使う方法 |
 |
|
|
|
|
|
ADOはExcel VBA(エクセルマクロ)やワードマクロなど、Access以外のアプリケーションでも使うことが出来ます。もちろん、SQL ServerやORACELなどのデータベースを扱うことも可能です。
Excel VBAなどでADOを使う方法は2つありますが、ここでは参照設定を行わずに、CreateObjectを使ってADODB.Connection型やADODB.Recordset型の変数を作成し、データベースを扱う方法を紹介します。
|
|
|
|
|
|
| CreateObjectを使う場合の変数宣言とオブジェクト作成 |
|
|
|
|
まずは変数の型宣言方法です。参照設定を行っていない場合は、変数の型へADODB.Connection型やADODB.Recordset型を指定することができないため、代わりにObjectという型で宣言しておきます。
次の例は、ADOへの参照設定を行った場合の変数宣言と、CreateObjectを使った場合の変数宣言例(Object型を指定)です。
■コネクションオブジェクト用変数宣言
'ADOを参照設定した場合の宣言例
Dim adoCON As New ADODB.Connection
'CreateObjectを使う場合宣言例
Dim adoCON As Object
|
■レコードセットオブジェクト用変数宣言
'ADOを参照設定した場合の宣言例
Dim adoRS As New ADODB.Recordset
'CreateObjectを使う場合宣言例
Dim adoRS As Object
|
また、上記のように宣言した変数をADODB.ConnectionオブジェクトやADODB.Recordsetオブジェクトにするには、CreateObjectを使って次のように行います。
■コネクションオブジェクトを作成する
Set adoCON = CrateObject("ADODB.Connection")
|
■レコードセットオブジェクトを作成する
Set adoRS = CreateObject("ADODB.Recordset")
|
|
|
|
|
|
|
| Excel VBAでADOを使いMDB(Accessデータベース)を読み込む例 |
|
|
|
|
次の例は、CreateObjectを使ってコネクションオブジェクトやレコードセットオブジェクトを作成しデータベースを扱う例です。c:\happy\island.mdbというMDB内にある「住所録テーブル」というテーブルをオープン(SELECT文を実行しレコードセットを作成)した後、MoveNextでレコードを最後まで順読みしています。
なお、CreateObjectを使っても使えるプロパティやメソッドは同じです。ADOを使ってデータベースを扱う方法は、3.ADOを使ってMDBへアクセスや4.ADOを使って他のDBへアクセスを参照してください。
Sub prcMoveNextADO()
Dim adoCON As Object
Dim adoRS As Object
Dim lngRow As Long
'コネクションオブジェクトを作成します
Set adoCON = CreateObject("ADODB.Connection")
'レコードセットオブジェクトを作成します
Set adoRS = CreateObject("ADODB.Recordset")
'ADOを使いMDBをオープンします
adoCON.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\happy\island.mdb;"
'レコードセットの作成(SELECT文の実行)
Set adoRS = adoCON.Execute("select * from 住所録テーブル")
lngRow = 1
'最終レコードまで順読み込みを行う
Do Until adoRS.EOF = True
'セルへ各フィールドの値を貼り付けます
Cells(lngRow, 1) = adoRS("漢字氏名")
Cells(lngRow, 2) = adoRS("カナ氏名")
lngRow = lngRow + 1
'レコードの順読み
adoRS.MoveNext
Loop
'テーブルのクローズ
adoRS.Close
'データベースのクローズ
adoCON.Close
'オブジェクトの破棄
Set adoRS = Nothing
Set adoCON = Nothing
End Sub
|
※これはエクセルマクロ(Excel VBA)です。
ちなみにこの方法では、プログラムをコーディングするときに図のようなメソッドや一覧のプロパティは表示されません。
|
|
|
|
|