はてなブックマークに追加
Facebookでシェア
Google+でシェア
Twitterでシェア
データベース操作用オブジェクトの基礎知識
VBAでデータベースを操作するには、データベースオブジェクトとレコードセットという2つの機能を使います。データベースオブジェクトにはデータベースを操作するやくわりが、レコードセットにはテーブルのデータを読み書きするのがやくわりがあります。他にも、フォーム・レポート・VBAのプログラムなど、データベースを利用するための仕組み全体を操作するプロジェクトというオブジェクトがあります。
データベースオブジェクト
 VBAでデータベースを操作するときの基本は、データベースオブジェクトとレコードセットです。このうち、もっとも基本となるのがデータベースオブジェクト(Database)です。
 データベースオブジェクトには、Accessのデータベースを操作するための機能が含まれており、レコードセット(DAO.Recordset)もDatabaseオブジェクトを使って作成します。

図 1データベースオブジェクトのやくわり
データベースやテーブルは、DAOという機能を使って操作します。

ワンポイント
Accessデータベースの操作はDAOが便利
データベース用のオブジェクトにはDAOとADOの2種類があります。このうち、カレントデータベースや、他のAccessデータベース(mdb、accdbのファイル)を使用する場合はDAOが便利です。DAOとADOは、目的や機能が大きく異なります。DAOはAccessのデータベースに特化した機能、ADOはAccess・SQL Server・MySQLといったいろいろなデータベース(データソース)を扱える汎用的な機能を備えています。
レコードセット
 レコードセットとは、テーブルから読み込んだレコードが保存されている入れ物です。レコードセットオブジェクトには、テーブルに保存されているデータを読み書きするための機能が含まれています。また、レコードセットは、データベースオブジェクトを使い必要に応じて作成します。
 データの読み書きは「レコード」という単位で行います。レコードとは「行」のことです。レコードセットを参照するときは行を移動してレコードを特定しますが、このときに現在のレコード(行)はカーソルというデータベースの機能が管理しています。また、カーソルは現在のレコードの他にも、検索条件やレコードのアクセス方法などのさまざまな情報を管理しています。

図 2レコードセットとは
レコードセットとは
レコードセットを使うと、レコードを取り出すのはもちろん、レコードの追加・更新・削除など、さまざまなレコードの操作が行えます。

◆テーブルとレコードセットの関係
 レコードセットは、テーブルから読み込んだレコードが保存されています。しかし、テーブルに保存されている全てのレコード全体が読み込まれるわけではなく、必要に応じて全体から一部分だけが読み込まれます。

図 3テーブルとレコードセット
レコードセットには、テーブルの一部分が読み込まれます
プロジェクト(カレントプロジェクト)
 プロジェクトとは、標準モジュールやフォーム/レポートなどの、Accessデータベース内でプログラムを作成できる部分(コードモジュール)全体を表します。簡単にいうと、データベースを利用するための仕組みの部分です。これらの仕組みに関する部分を操作するときに使うのが、CurrentProjectオブジェクトです。このオブジェクトは、基本的にプロジェクトの情報を取得・参照するときに使います。

図 4カレントプロジェクトのやくわり
プロジェクトとは、プログラムを作成できる部分全体を表します


Copyright(C) 1999-2015 結城圭介(Ver.3.51) All rights reserved