スポンサーリンク

【ACCESS VBA】ADOについて

スポンサーリンク
スポンサーリンク
この記事は約4分で読めます。

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の正式な情報は公式ドキュメントを読むべきですが、このサイトでは実際に使う場面を想定して紹介しているので、公式ドキュメントと併せて読んでいただくと理解が深まると思います。

ACCESS記事一覧

コメント