データベース操作用オブジェクトの基礎知識
VBAでデータベースを操作するには、データベースオブジェクトとレコードセットという2つの機能を使います。データベースオブジェクトにはデータベースを操作するやくわりが、レコードセットにはテーブルのデータを読み書きするのがやくわりがあります。他にも、フォーム・レポート・VBAのプログラムなど、データベースを利用するための仕組み全体を操作するプロジェクトというオブジェクトがあります。
データベースオブジェクト
VBAでデータベースを操作するときの基本は、データベースオブジェクトとレコードセットです。このうち、もっとも基本となるのがデータベースオブジェクト(Database)です。
データベースオブジェクトには、Accessのデータベースを操作するための機能が含まれており、レコードセット(DAO.Recordset)もDatabaseオブジェクトを使って作成します。
図 1
データベースオブジェクトのやくわり
ワンポイント
Accessデータベースの操作はDAOが便利
データベース用のオブジェクトにはDAOとADOの2種類があります。このうち、カレントデータベースや、他のAccessデータベース(mdb、accdbのファイル)を使用する場合はDAOが便利です。DAOとADOは、目的や機能が大きく異なります。DAOはAccessのデータベースに特化した機能、ADOはAccess・SQL Server・MySQLといったいろいろなデータベース(データソース)を扱える汎用的な機能を備えています。
レコードセット
レコードセットとは、テーブルから読み込んだレコードが保存されている入れ物です。レコードセットオブジェクトには、テーブルに保存されているデータを読み書きするための機能が含まれています。また、レコードセットは、データベースオブジェクトを使い必要に応じて作成します。
データの読み書きは「レコード」という単位で行います。レコードとは「行」のことです。レコードセットを参照するときは行を移動してレコードを特定しますが、このときに現在のレコード(行)はカーソルというデータベースの機能が管理しています。また、カーソルは現在のレコードの他にも、検索条件やレコードのアクセス方法などのさまざまな情報を管理しています。
図 2
レコードセットとは
レコードセットを使うと、レコードを取り出すのはもちろん、レコードの追加・更新・削除など、さまざまなレコードの操作が行えます。
◆テーブルとレコードセットの関係
レコードセットは、テーブルから読み込んだレコードが保存されています。しかし、テーブルに保存されている全てのレコード全体が読み込まれるわけではなく、必要に応じて全体から一部分だけが読み込まれます。
図 3
テーブルとレコードセット
プロジェクト(カレントプロジェクト)
プロジェクトとは、標準モジュールやフォーム/レポートなどの、Accessデータベース内でプログラムを作成できる部分(コードモジュール)全体を表します。簡単にいうと、データベースを利用するための仕組みの部分です。これらの仕組みに関する部分を操作するときに使うのが、CurrentProjectオブジェクトです。このオブジェクトは、基本的にプロジェクトの情報を取得・参照するときに使います。
図 4
カレントプロジェクトのやくわり
Access VBA Tips+α
DAOデータアクセス編
■このコーナーについて
はじめに
■VBAとDAOによるデータベース操作の基本
データベース操作用オブジェクトの基礎知識
Accessデータベースの基本オブジェクト
Accessプロジェクトの基本オブジェクト
DAOの参照設定を行う(Access 2000)
■テーブルとレコードセット(DAO)
テーブルやクエリを開く/OpenRecordset
レコードセットを閉じる/Close
フィールドの値を取得する/FieldsとValue
フィールド名やその他の情報を取得する/Fields
レコードの順読み込みを行う/MoveNext
レコードの逆順読み込みを行う/MovePrevious
読み込み終了を判定する/EOFとBOF
先頭レコードに移動する/MoveFirst
最後のレコードに移動する/MoveLast
条件と一致する最初のレコードを検索する/FindFirst
条件と一致する最後のレコードを検索する/FindLast
条件と一致する次のレコードを検索する/FindNext
条件と一致する手前のレコードを検索/FindPrevious
レコードの検索結果を調べる/NoMatch
フィルタや検索条件の書き方
レコードを挿入する/AddNewとUpdate
レコードを更新する/EditとUpdate
レコードを削除する/Delete
挿入や更新のレコード編集を取り消す/
CancelUpdate
挿入や更新を行っているかどうかを調べる/EditMode
レコードロックの方法を設定する/LockEdits
何パーセントまで読み込んだかを調べる/PercentPosition
レコード件数を調べる/RecordCountとMoveLast
レコードの絞り込みを行う/Filter
レコードの並べ替えを行う/Sort
レコードセットを再オープンする
/Recordset.OpenRecordset
SELECT命令でテーブルを開く/OpenRecordset
追加・更新・削除のSQLを実行する/Execute
カレントレコードが何件目であるかを調べる
/AbsolutePosition
ブックマークを使ってレコードを記録する・移動する
/Bookmark
■ワークスペース/データベースエンジン
ワークスペースの作成と終了/CreateWorkspace
外部のMDBやACCDBを使用する/OpenDatabase
トランザクション処理を行う
/BeginTrans CommitTrans Rollback
トランザクション処理が可能かどうかを調べる
/Transactions
■カレントデータベース/プロジェクト
新しいクエリを作成する/CreateQueryDef
既存のクエリを削除する/QueryDefs.Delete
クエリの内容を変更/参照する/QueryDef.SQL
データベースのファイル名を取得する
データベースエンジンのバージョンを取得する
データベースファイルのパスやファイル名を調べる
/CurrentProject.Path Name FullName
データベースファイルの形式を調べる/FileFormat
テーブルを開かずにレコード件数を求める
/TableDef.RecordCount
リンクテーブルを作成する/TableDef.Connect他
■DAOデータアクセス編
■ADOデータアクセス編
■クエリー(SQL)編
■フォーム・サブフォーム編
■レポート編
■Printerオブジェクト編
■コントロール基本編
■テキスト/コンボ/リストボックス活用編
■メニューバー・ツールバー編
■マクロ(DoCmd)編
■複数値と添付ファイル編
■Accessの操作と便利な機能編
■プログラミングサンプル編
■番外編1.HTTPやFTPを使うには
■サイト内を検索
Happy! Happy! Islandその他のコンテンツ
■
VBAプログラミング系
Access VBAのTipsとサンプル
Excel VBA(エクセルマクロ)のTipsとサンプル
VBScript/JScriptのTipsとサンプル
プログラミング基礎・入門
■
入門と使い方
Access入門と使い方講座97~2003/2007/2010/2013
Access VBAプログラミング入門 2013/2010/2007/2003
Excel入門と使い方講座2013/2010/2007
■
ダウンロードコーナー
AccessとExcelのフリーソフト
■
その他
質問受け付けコーナー「管理人に聞いてみよう♪」
BBS過去ログ広場
HTMLの書き方
管理人プロフィール
┗
twitter(外部サイト)
管理人へメール
■
別館(海外向けサイト)
Excel Games and Access Games
VBAプログラミング&Tips集の
"Happy! Happy! Island"トップページへ
[PR]管理人が心を込めて書いた本
■
最速攻略 AccessVBAサンプル大全集
Access 2013/2010/2007対応版
■
速効!ビジネスPC Accessマクロ&VBA
Access2013/2010/2007対応
■
最速攻略Accessクエリ テクニック大全集
Access2013/2010/2007対応
■
AccessVBAマクロ超入門講座 Access2010/2007対応
■
ExcelVBA超入門講座 Excel2010/2007対応
■
ExcelVBAでできる RPGゲーム作成入門
■
[改訂新版]実践COBOLプログラミング入門
■
最速攻略 VBScriptサンプル大全集
Windows7/Vista/XP/2000対応
(
アマゾン
へジャンプします)
[PR]注目の情報
転職成功の秘訣はサイトに公開されない求人にあった
採用人数が少ない・専門性が高い・競合他社に知られたくないなど、魅力的な求人情報ほど一般には公開できないのです。
株デビューするなら SBI証券!
業界屈指の格安手数料と業界最高水準のサービスで口座数はネット証券 No.1!口座開設料・管理料は無料。
GDOゴルフショップ
ゴルフ用品のオンラインメガストア。品揃え10万点!
アスタリフトコラーゲンドリンク
毎日続けるものだから・・まとめ買いで最大10%OFF!集中コラーゲンケアで、ハリと潤いの溢れる毎日へ。
[リンク]IT関連情報サイトなど
gihyo.jp
技術評論社提供のIT関連コンテンツサイト
Copyright(C) 1999-2015
結城圭介
(Ver.3.51) All rights reserved