ACCESS VBAを学習しています。
今回はVBAを使ったについて学びます。
この記事では、使い方と使用例を掲載しています。
使い方については、よく使う部分だけを抜粋してご紹介しています。
詳細は公式のドキュメントをご覧ください。
説明
ADOについて
VBAのコードから直接データベースに接続して操作するためのライブラリです。
VBAのコード上でデータベースのCRUD(作成・参照・更新・削除)操作を行うことができます。
なぜADOを使うのか
ADOを使用することでVBAのコード上から直接データベースを操作することができます。
これによるメリットとして、例えば新規レコードの追加や既存レコードの更新などが、ボタン(コントロール)を押した時だけ実行するように設定できます。
ADOを使わない場合は、ACCESSのフォーム内にある入力用の各コントロール(テキストボックスなど)上で編集を行うと、テーブルをそのまま更新できてしまいます。
これはフォームとテーブルがつながっている連結フォームを使うことによるデメリットです。
本当は更新したくなかったのに、予期せぬ更新を行ってしまったという事例が発生し得ます。
しかし、VBAからADOを介してデータベースに接続することで、フォーム上の各コントロール(テキストボックス)などは、ただ入力ができるだけで実際にデータを操作できない状態にすることができます。
いわゆる連結フォームと非連結フォームの違いです。
VBAでのコーディングが前提
ACCESSにはVBAでコーディングすることで様々な処理を行う機能を作ることができますが、より簡易に機能を作成するためにマクロが用意されています。
マクロを使うことで、VBAでのコーディングを行わずともクリックや簡単な入力による直感的な操作で機能を作ることができます。最近の言葉で言うとローコードが近いように思います。
しかし、簡易に作成できる代わりに作成できる機能は制限される場合があります。
フォームとテーブルがつながっている連結フォームしか作れず、意図しないデータの更新を防ぐことができない点などがその例の一つだと思います。
VBAを使うことで、より幅広く自由な機能を作ることができます。VBAのコーディングを行うことでより良い機能を作る方法であるADOを使用することができます。
SQLの知識も必要
データベースを扱うためのものとしてSQLがあります。DoCmd.OpenFormなどの引数として「wherecondition」がありますが、ここに条件として入力するような内容がSQLに当たります。
ADOはコードベースでDBの操作を行うため、SQLの知識も必要になります。
ADOでできる操作
ActiveX データ オブジェクト (ADO) タスク テーブル | Microsoft Learn
ADO を使って行える操作 | Microsoft Learn
マイクロソフトのサイトから引用します。
- SQLを使用してデータベースを紹介し、結果を表示
- データベース テーブル内のデータを確認および変更
- トランザクションによるデータベース操作
公式のチュートリアル
HelloData: 簡単な ADO アプリケーション | Microsoft Learn
マイクロソフトの公式サイトを除いてみると、ADOを使ったアプリケーションの作成を行うチュートリアルが紹介されています。
ADOコードの例
Microsoft Visual Basic での ADO コードの例 | Microsoft Learn
ADOに関する用語集
ActiveXデータ オブジェクト (ADO) の用語集 | Microsoft Learn
具体的な操作
セクション I: ActiveX データ オブジェクト | Microsoft Learn
参考
公式ドキュメントです。この記事で記載した内容は、マイクロソフトの公式サイトから特に関係のありそうな部分を紹介しています。ボリュームはかなり多いですが、以下の記事から全ドキュメントを確認できます。
Microsoft Visual Basic で ADO を使用する | Microsoft Learn
Microsoft ActiveX データ オブジェクト リファレンス | Microsoft Learn
ACCESSの記事を一覧にしています。ACCESS VBAの正式な情報は公式ドキュメントを読むべきですが、このサイトでは実際に使う場面を想定して紹介しているので、公式ドキュメントと併せて読んでいただくと理解が深まると思います。
コメント