ACCESS VBA ADODB.Recordsetとは
ACCESS VBAでADODB.Recordsetという記述を見たことはないでしょうか?
これは、ACCESS VBAからテーブルの内容を追加、更新、削除するために利用するADOのレコードセットオブジェクトです。
今回は、ADODB.Recordsetについてご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
ADOとは
ADODB.Recordsetについて説明する前に、そもそもADOについてご説明しましょう。
ADO(ActiveX Data Objects)とはマイクロソフトが提供する、データベースを操作するための様々オブジェクトの集合体です。
ADOを使うことでデータベースの操作が可能です。
ACCESSはもともとクエリ等のデータベースを操作する独自オブジェクトを用意していますが、ADOを使うことで条件分岐やループを含めたより柔軟なデータベースの追加、更新、削除が可能です。
ADODB.Recordsetとは
ADODB.RecordsetとはADOで利用するレコードセットオブジェクトです。
イメージ的には空のテーブルもしくは配列のようなものだと思ってください。
ADOを利用する際には、Recordsetオブジェクトにテーブルやクエリを代入した上で、レコードの操作を行います。
ADOを利用する上で最も基本となるオブジェクトです。
ADODB.Recordsetの使い方
ADODB.Recordsetを使うには、ACCESS VBAのプロシージャの中で変数宣言を行います。
以下は、一般的にADOを利用する際の宣言部です。
Public Sub uriage
'変数の宣言
Dim cnn As ADODB.Connection
Dim rst1 As ADODB.Recordset
'変数にADOオブジェクトを代入
Set cnn = CurrentProject.Connection
Set rst1 = New ADODB.Recordset
rst1.CursorLocation = adUseClient
'レコードセットを取得
rst1.Open "TRN_売上明細", cnn, adOpenKeyset, adLockOptimistic
上記の例ではrst1というレコードセットオブジェクトを利用しています。
Dim rst1 As ADODB.Recordset
でrst1をADOのレコードセットとして宣言しているわけです。
その後、
Set rst1 = New ADODB.Recordset
でrst1.をデータベースに接続します。
このあたり、ADOを利用する際の決まりの宣言なので、意味が分からなくともコピペで利用していただいてもよいかと思います。
以上、ADODB.Recordsetについてご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。