【MS Access】アクセスを初めてさわる人向け基礎知識と習得ステップ【後編】

MS Access
スポンサーリンク

Accessを初めてさわる人向けに、Accessの主だった機能の解説と、それらの機能をどの順番で習得していけばよいかを紹介していきます。

尚、当記事は上記内容の後編になります。
前編の記事はこちらです。

前回の記事では以下の機能について紹介しました。

  • ステップ1:「テーブル」を作成してデータを入れてみよう
  • ステップ2:クエリを使ってデータを抽出したり更新しよう
  • ステップ3:マクロを作成して処理を自動化してみよう

今回は、より上位の機能を紹介していきます。

ステップ4:フォームを作成してデータ表示したり登録させてみよう

習得レベル:係長

Accessを使用した業務アプリケーション開発において非常に重要な機能である「フォーム」についても理解していきましょう。

「フォーム」とはデータを表示、入力するためや、各機能へ遷移するためなどに使用する画面です。

例えば、データを入力するための画面では、まずその画面の名称や機能名を画面の上部に表示させることが多いです。

また、データを入力するためには、文字を入力させるための入力欄が必要になり、その入力欄はどのような値を入力する場所なのかをユーザーに認識させるための、入力欄ごとの名前も併せて表示させます。

入力欄は文字を直接入力させるだけではなく、リストのなかからユーザーに選ばせる種類のものもあります。
また、入力項目によっては文字の入力や値の選択だけではなく、チェックボックスでチェックを付けて選択させる形式のものもあります。

フォームを閉じたり別の画面を開いたりする場合は、画面内に配置したボタンを押下させます。

フォームには、こういった入力画面を構成するパーツを自由に配置して、そのパーツごとにマクロやVBAなどで処理内容を設定して細かな制御をすることができます。
これらの操作はAccessのフォームエディタ作成画面にて、マウスを使ってGUIで作成することができ、画面を作るだけなら専門的な知識は不要です。
とっても簡単です。

以下で、Accessで使用できるフォームの特徴や種類について紹介していきます。

データ連結フォームと非連結フォームについて

Accessで作成できるフォームの特徴として、テーブルやクエリのデータとフォームを連結することができ、この機能により、フォームにデータを表示したり入力フォームを作成する場合の技術的な難易度を大きく下げてくれてます。

以下で「連結フォーム」と「非連結フォーム」の違いを説明します。

連結フォーム

Accessでフォームを作成する場合に、まず使い方を覚える必要のあるフォームです。
前述した通り、テーブルやクエリのデータとフォームを連結することができます。
具体的には、例えば「A」という名前のテーブルをフォームの設定項目(プロパティ)内の「レコードソース」に指定します。
これでフォームとテーブルAが「連結」されます。
それをすることで、例えばそのフォームてテキストボックスを設置した場合に、更にそのテキストボックスの設定で、テーブル「A」のどのフィールドと連結するかを指定することができるようになります。
その設定をすると、そのテキストボックスは特別な設定をすることなく、フォームを開いた際に連結元のテーブルの指定したフィールドの値を読み込んで表示してくれます。
その値を書き変えると、テーブルのフィールドの値も併せて書き変わります。
プログラミングは一切不要です。

非連結フォーム

前述した「連結フォーム」とは違い、テーブルやクエリなどと連結しないフォームを「非連結フォーム」と呼びます。
例えば、一般的な業務システムでは大体「メニュー画面」が存在します。
フォーム内にボタンが並び、画面遷移をさせるためだけの機能であれば、フォームはテーブルやクエリからレコードを読み取る必要も無いため、データと連結する設定はしません。
また、データ入力フォームやデータを表示するフォームであっても、データを入力したりデータを表示させる仕組みに連結フォーム機能を使わずに、後述する「VBA」を使用してプログラミングでデータを登録したり表示させることが可能です。
非連結フォームでテーブルなどのデータを扱う場合は、VBAの知識が必要になるため、Accessの使い方のなかでも難易度が高い分類に入ります。

この様に、Accessでは大きく二種類のフォームの使い方があります。

さらに「連結フォーム」に関しては、その連結したデータの表示方法によって、更にフォームの種類が分かれています。

以下でそのフォームの種類を紹介していきます。

連結フォームにおけるフォームの種類

Accessでフォームを作成する場合に、まっさらなフォームを新しく作成することもできますが、予め用意されている4種類のフォームを選択して作成することもできます。
そのなかでもまず習得しておきたいフォームは「単票形式」と「表形式」です。
その種類ごとの違いを簡単に解説します。

単票形式

連結したテーブルやクエリを一行ずつ扱う場合に選択します。
連結したテーブルやクエリが何行あったとしても、そのフォームではそのなかの一行しか扱えません。
また、フォームの既定の設定では、マウスのホイールを回すことで連結しているレコードも移動して、フォームに表示されるデータも切り替わります。
何らかのデータの「新登録画面」とか「マスタメンテナンス画面」のような使われ方が適しています。
基本となるフォームです。

表形式

連結したテーブルやクエリの複数行をまとめて表示する場合に選択します。
データの検索結果を表示したり、ヘッダーデータに対する明細データを表示させるといった、様々な用途で使用できて、これも前述の「単票形式」と同様に、Accessにおいて重要なフォームの形式の一つです。

フォームの単票形式と表形式の違いのイメージは以下です。

メインフォームとサブフォーム

Accessではフォームのなかに別のフォームを埋め込むことができます。

例えば、受注データにおける「ヘッダーデータ」を格納するテーブルと、そのヘッダーデータ毎に持っている受注番号で紐付けることができる「明細データ」を格納するテーブルがあると仮定します。

上記で紹介した「単票形式フォーム」にはヘッダーデータを連結し、それを「メインフォーム」とします。
更に「表形式フォーム」を作成し、そこには明細データを連結し、それを「サブフォーム」とします。

ヘッダーデータ用のフォームのなかに、明細データ用のフォームをドラッグして配置することで、単票形式フォーム内に表形式フォームが埋め込まれます。

これがメインフォームとサブフォームになります。
親フォームと子フォームと呼ぶこともあります。

このサブフォームの使い方を習得することで、例えば、表示している受注データのヘッダーデータに合わせて、サブフォーム内で明細データを表示させるといった使い方ができるようになります。

中の人
中の人

まずは「連結フォーム」を利用して、データと連携するフォームがサクッと作れるようになりましょう。

最終的にサブフォームを使いこなせるようになれば一人前です!

 
 

ステップ5:レポートを作成して業務で使用する帳票印刷を自動化しよう

習得レベル:課長

Accessの機能のなかでも、初心者向けの機能が有る程度習得できたら、次は「レポート」の習得をおススメします。

「レポート」機能は、それのみが主役となることはあまりないのですが、Accessで使用できるレポートは他の高価な帳票作成ソフトが持っている機能と遜色なく、非常に使いやすいため、活用しないともったいないです。
是非積極的に活用していきましょう。

以下の項では、Accessのレポートの特徴を紹介していきます。
レポート機能ではどんなことができるのかを理解していきましょう。

イベントごとのマクロやプログラム実行

例えばフォームであれば、「コマンドボタンを押したとき」や「フォームを読み込むとき」といったように、様々な「イベント」が存在し、それをトリガーとしてマクロやプログラムが実行できます。

レポート機能でも同様で、様々なイベントが用意されています。

詳しくはMicrosoftの公式リファレンスページをご確認ください。
Report オブジェクト (Access) -Office VBAリファレンス-

よく使うイベントを紹介しておきます。

イベント 表示名 内容
Open 開く時 レポートのプレビューを開く前、又はプレビューを表示させない設定の場合は、印刷処理が実行される前に発生します。
例えば印刷する対象のデータを、条件に沿って動的に取得する処理を実行するといった使い方ができます。
Close 閉じる時 レポートを閉じる際に発生します。
例えば印刷用で作成したワークテーブルのデータを削除するといった使い方ができます。
NoData 空データ時 レポートを開く際に、レポートが連結しているテーブルやクエリの行がない場合に発生します。
例えば印刷対象のデータが存在しない場合にプレビューの表示をキャンセルしたり、レポートの印刷をキャンセルする場合になどに使用しますが、前提としてレポートを開く前にデータ有無の判定をする場合は当イベントでの処理は不要になります。
Page ページフォーマット時 レポートが各オブジェクトを読み込んで印刷する直前に発生します。
例えばレポート内の特定のオブジェクトが読み込まれていることに依存した処理の場合にこのイベントを使用します。

覚えておいたほうが良いイベントとしては上記です。

イベント自体は、フォームと同じようにたくさんありますが、レポートはフォームの様に、データを入力したり検索したりするために使われるものではなく、帳票を印刷することが目的の機能です。

その為、レポートを開いて、印刷をして、レポートを閉じるという一連の流れごとのイベントだけ取得して、必要によって適切な処理を入れる程度で問題はありません。

テーブルやクエリを連結してデータを印刷可能

「フォーム」の項でも紹介した「連結」がレポートでも可能です。

テーブルやクエリとレポートを連結することで、そのテーブルやクエリのフィールドとレポート内のテキストボックスを連結することができます。

この様に、テーブルやクエリとレポートを連結することで、データベースのレコードを元にした帳票の印刷が非常に簡単に行えます。

フォームと同様に、レポートにおいても非連結で使用することはできますが、レポートの場合はテーブルやクエリと連結して使用する方がメリットが大きいので、連結レポートで使用することをおススメします。

「宛名ラベル」作成機能や「伝票ウィザード」のテンプレートが実用的

レポートは自由にレイアウトを作成できますが、特定の用途を想定したレイアウトのテンプレートも用意されており、それらがとても実用的です。

例えば、レポートの「宛名ラベル」作成機能を利用することで、テーブルから抽出した顧客リストを元に、ダイレクトメール用の葉書に貼る宛名シールをレポートとして印刷することができます。

宛名用のラベル紙は様々なメーカーが販売しており、ラベル紙も2列、3列、4列など色々なフォーマットがあります。
余白のサイズもまちまちです。

ラベル紙の主要なメーカーの品番はある程度テンプレートとして用意されており、それらを選ぶだけでラベル紙のサイズに合わせて印刷することができます。

また、「伝票ウィザード」では、ヤマト運輸やゆうパックなどの出荷伝票がテンプレートとして用意されており、伝票を手書きではなく、Accessのレポート機能で印刷させることができます。

これらの印刷機能は非常に実用的であり、これらのレポート機能だけを目的にAccessを使う場合もあります。

中の人
中の人

Accessに実装されている「レポート」機能は非常に高機能であり、初心者にも扱いやすくて優秀です。

業務をシステム化するにあたって、必ず紙の帳票を印刷したいという需要はあるので、是非活用していきましょう!

 
 

ステップ6:VBAでフォームの制御を作り込もう

習得レベル:部長

いよいよVBAについて紹介していきます。

Accessのすばらしいところは、完全にノーコードで簡易的な業務アプリやツールの開発ができるところです。

前項で紹介した「クエリ」と「マクロ」を駆使することで、プログラムを記述することなく、データ入力用のフォームを作成したり、必要なデータを検索して表示するフォームを作成することができます。

近年では、ノーコード、ローコードで業務アプリケーションの開発ができる製品も色々ありますが、Accessは20年以上前からその機能を実用レベルで搭載しています。

ただ、やはりAccessの真骨頂はVBAとの連携にあります。

このVBAを使いこなすことで、JavaやC#などの専門性の高いプログラミング言語で開発した業務アプリケーションに匹敵する本格的な業務アプリを作ることができます。

このVBAですが、これまで紹介した「クエリ」や「マクロ」で実施している処理は全てVBAに置き換えることが可能ですが、もしVBAにまだ不慣れな場合は、少しずつ導入して慣れていきましょう。

手始めにフォーム内の各制御をVBAで実装する

まず一番簡単にVBAで実装しやすいのは、フォームに設置しているコマンドボタンやテキストボックスに対する制御です。
例えば以下の様な処理です。

  • コマンドボタンを押下した際にフォームを開く、又は閉じる
  • テキストボックスに入力された値の文字数や値の有無をチェックする
  • テキストボックスやラベルのテキストを書き込む
  • フォームやクエリを再読み込み、再描写する

これらの処理は、Access VBAにおいて、非常に基本的な処理の例です。
個々の処理をVBAで実装する場合に記述するプログラムはどれも一行で済みます。

もし前述した「マクロ」をフォームのボタンクリックイベントの処理やフォーム読み込み時や開くときの処理として埋め込んでいる場合、それらの処理はすべてVBAに組み直すことができます。

もし「マクロ」を使ってフォームの各処理を実装しているのであれば、それを個々に一つずつVBAに置き換えていくことで、確実にVBAを習得していくことができます。

フォームやボタンなどのコントロールのプロパティをVBAで設定

例えばフォームのサイズや背景色、ボタンのフォント、テキストボックスの表示形式などの様々な設定は、フォームデザイナー画面右側の「プロパティ」から指定することが一般的です。
それ自体は問題無いのですが、このプロパティの値を指定するのはVBAでもできます。

フォームデザイナー画面からプロパティを設定する場合、その設定した値はデザイナー画面で確認するしかないのですが、個々のフォームのデザイナー画面を開いて確認するのは結構手間です。
VBAでプロパティの値を指定する場合は、プログラムコードを見れば、設定したプロパティの値は簡単に判別が付き、文字列として検索することもできるため、慣れたらVBAでプロパティを指定するほうが便利です。

ただ、プロパティ項目は多岐にわたるため、何でもかんでもVBAで指定するのも手間は大きく、作業効率も下がりおススメしません。
よって、フォームによって値がまちまちだったり、そのフォームにおける重要なプロパティ項目に絞ってVBAで記述するというやり方が一番無難かも知れません。

また、プロパティの値を何らかの条件によって切り替えるとか、動的な設定が必要な場合は、必ずVBAで指定する必要があります。

プロパティをVBAで指定する記述は、個々のプロパティ項目ごとに1行VBAのコードを書けば済むものなので、非常に簡単です。
是非プロパティも積極的にVBAで指定するようにしていき、VBAで画面やコントロールを作る作業に慣れていってください。

マクロからVBAに置き換えるメリット

前述した「マクロ」からVBAに置き換えていくことによるメリットは色々あります。
そのメリットを以下で紹介していきます。

処理の可読性が向上する

「マクロ」を使ってフォームの処理を実装する場合、まず「マクロ」を登録します。
その登録したマクロをフォームデザイナー画面で、フォームやフォーム内のボタンコントロールのクリック時のイベントなどに埋め込みます。
この場合、どのフォームのどの処理にどのマクロが埋め込まれているかを確認するには、そのフォームに埋め込まれているマクロを一つずつ開いて確認するしかありません。
非常に非効率です。
VBAでフォームの処理を記述することで、そのフォームの処理はすべてVBAで書かれることになり、VBE(VBエディタ)画面を開けば、実装されている処理を追うのは容易です。
この様に、処理の「可読性」が大きく向上します。

処理を文字列で検索できる

前述した通り「マクロ」を主体としてフォーム内の処理を作り込んだ場合、その作成したマクロは点在し、それを一元的に調べることが困難です。
VBAで処理を記述した場合は、VBE内で書かれているVBAのプログラムコードの文字列を検索することができます。
文字列で検索することで、特定のテキストボックスに対する処理を洗い出したり、特定のクエリを実行している処理を調べることができます。
それによって、Access環境下での業務アプリ作成に関する作業効率が大幅にアップします。

複雑な処理の実装が可能

「マクロ」では、ノープログラミングで処理が作成できますが、あくまで予め用意されているマクロの「アクション」の範囲内でしか作れません。
いくら様々な種類が用意されていると言っても、マクロを使いこなせるようになってくると、実装したいけどマクロのアクションには無い処理もでてきます。
そんな時は、やはりVBAで処理を記述することになります。
VBAでは複雑な条件分岐やループ処理などが実装できるため、マクロでは作れないような複雑な画面制御や、効率的な処理の記述が可能です。

プログラミングスキルが身に付く

「マクロ」はあくまでAccessのなかでしか利用できない機能です。
VBAは一般的なプログラミング言語の一つであり、Accessだけではなく、Excelでもほぼ同じ構文で利用できます。
また、「VBScript」と呼ばれるWindows標準で実行できるプログラミング言語において、VBAと非常に構文が近いため、習得は容易です。
VBAで汎用的な制御構文などの扱い方を学ぶことで、更に別のプログラミング言語へもチャレンジできるようになります。

このように、「マクロ」をVBAに置き換えていくことには、非常に大きなメリットがあることがお分かりいただけたかと思います。

中の人
中の人

「マクロ」だけでも業務アプリの作成はできますが、やはりフォーム内の細かい制御などの作り込みは苦手です。

「マクロ」と「VBA」を共存しながら少しずつVBAに置き換えることも十分可能なので、積極的にチャレンジしていきましょう!

 



ステップ7:データベースの処理を全てADOやDAOで実装しよう

習得レベル:社長

フォームの制御について一通りの操作ができるようになれば、次はデータベースへの処理を全てADODAOに置き換えていきましょう。

これまでは、データベースからデータを抽出する処理や、データを更新する処理は、全てクエリを呼び出して実行していましたが、これらはクエリを使わずに、すべてVBAで実装することができます。

Accessにおいて、クエリを使用せずにデータベースのテーブルを参照したり更新する方法では、主に「ADO」と「DAO」があります。

まずはこの二つの方法の違いを紹介していきます。
 

「DAO」と「ADO」の違いについて

Accessでクエリを使わずにテーブル操作を行う手法として存在する「DAO」と「ADO」ですが、同技術を使ったことがない人にとってはこの技術の違いは分かりづらい部分です。

以下で簡単にこの違いを紹介していきます。
 

DAO(Data Access Objects)とは

テーブルの読み込みや書き込みなどの処理を提供しているデータアクセス用のインターフェイスです。
Accessの操作に特化しています。

後述するADOより歴史が古く、Accessの自ファイル内のテーブルやクエリに対する処理や、異なるAccessファイルへの処理で言えば、DAOの方が用意に実装できます。

また、後述する「参照設定」でも、昔のAccessは手動で参照設定に追加する必要がありましたが、今は既定で参照設定が有効化されています。
よって、VBAではDAOのオブジェクトを参照設定することなく生成することができます。
 

ADO(ActiveX Data Objects)とは

前述した「DAO」はAccessの処理に特化したデータベース操作用のプログラムですが、「ADO」はAccessに限らず、様々なデータベースに対して接続して操作ができる、より汎用的なデータアクセス用のインターフェイスです。

SQL Serverなどの非Accessの外部データベースへのアクセスに対して、リンクテーブルに依存しない処理を実装する場合は、必ずこの「ADO」で処理を作ることになります。

また、後述する「参照設定」は既定では外れているので、必要によって手動で参照設定を追加する必要があります。

「参照設定」って何さ?

前項でも何度か出てきた「参照設定」についても簡単に紹介しておきます。

VBAに限らず他のプログラミング言語でも同様の仕組みがあり、そのプログラミング言語本体に機能追加をするための外部プログラムファイル集(ライブラリー)を読み込ませるための仕組みです。

使用するパソコン毎にそのプログラムファイルは配置されており、VBAの場合はOfficeをインストールすることで、そのライブラリーも併せてインストールされます。

同じバージョンのOfficeを使う限り、基本的には同じライブラリーが入っていることになりますが、Officeのバージョンが異なれば、ライブラリーの個々のプログラムのバージョンが違っていたり、増えたり減ったりといったことも発生します。

端末環境に依存する仕組みです。

「参照設定」に追加することで、VBAでそのライブラリーを呼び出すことができるようになり、VBE内で入力補完(オートコンプリート)が効くようにもなります。

この入力補完が効かないと、そのライブラリーを使用してコードを書く際に、メソッドやプロパティを手入力することが必要になるので、実装がかなり面倒になります。

そして、当項で紹介している「DAO」と「ADO」をVBAで使用する場合も、上記の「参照設定」が必要です。
ただし、参照設定が必須でもありません。

VBAのプログラム内で、これらのライブラリー内のプログラムを直接呼び出して「インスタンス化」することで、VBEで参照設定を指定しなくてもライブラリーを使用できます。
この場合は前述した通り入力補完が動かないため、メソッドやプロパティの入力候補が表示されず、手入力する必要があります。

この参照設定をしておく行為を「事前バインディング」、参照設定を入れずにプログラム内で呼び出して使用する行為を「遅延バインディング」と呼びます。

後者の「遅延バインディング」では、端末間で異なるバージョンのライブラリーが入っていても、その端末側のライブラリーが可変的に使用されるため、ライブラリー内の呼び出すプログラムのバージョン違いに起因して実行時エラーが出るといった状況を避けることができます。

ただ、基本的には「事前バインディング」を採用するほうが、コード作成時の効率が上がり、プログラム実行時の内部的な動作も早くなるなどメリットが大きいため、様々なバージョンのOfficeが混在して確実にエラーになることが予想できる使用環境で無いなら、「参照設定」を追加しておく方法をおススメします。

尚、「DAO」と「ADO」で使用する参照設定のライブラリー名はそれぞれ以下です。

種類 参照設定名 備考
DAO Microsoft Office xx.0 Access databese engine Object Library 現行のバージョンでは既定で有効。
以前の名称は「Microsoft DAO 3.6 Object Library」
ADO Microsoft ActiveX Data Objects 2.x Library 既定では必ず外れているため、
有効にする必要がある。

「DAO」と「ADO」はどう使い分ければ良いの?

この2つの技術の使い分けについては、Microsoftのサポートサイトでも言及があります。
以下のリンクをご確認ください。
Access を SQL Server に接続する -Microsoft Officeサポートサイト-

当リンク先の一部を以下で抜粋します。

次の場合は、DAO を使用します:

  • VBA を使用せず、バインドされた読み取り/書き込みフォームを作成する。
  • ローカルテーブルでクエリを実行する。
  • 一時的なテーブルにデータをダウンロードする。
  • 読み取り専用モードでレポートまたはフォームのデータ ソースとしてパススルー クエリを使用する。
  • VBA で TableDef または Querydef オブジェクトを定義して使用する。

次の場合は、ADO を使用します:

  • 非同期操作の実行など、他の最適化方法を活用する。
  • DDL および DML パススルー クエリを実行する。
  • VBA のレコードセットを使用し、SQL Server のデータに直接アクセスする。
  • BLOB のストリーミングなど、特定のタスクの簡単なコードを記述する。
  • VBA でコマンド オブジェクトを使用し、パラメーターを指定してストアド プロシージャを直接呼び出す。

この内容を見てもすぐに理解はできないかもしれませが、Microsoftとしてはどちらか片方だけを推奨するのではなく、用途によって使い分けると良いですよと言っている理解で良いかと思います。

尚、個人的な「DAO」と「ADO」の使い分ける基準も紹介しておきます。

「DAO」で実装するケース

  • ローカルテーブルの行を取得してレコードセットで扱う
  • クエリやパススルークエリをVBAで動的に作成する
  • テーブルやリンクテーブルをVBAで動的に作成する
「ADO」で実装するケース

  • 外部のデータベースに対して直接SQLを実行する
  • 外部のデータベースの行を取得してレコードセットで扱う
  • 外部のデータベースのストアドプロシージャを実行する

要するに以下です。

Access内のテーブルやクエリに関する操作やデータ取得は「DAO」

外部のデータベースとの接続やSQLの実行、データ取得は「ADO」

外部データベースに対するトランザクション管理なら「ADO」1択

SQL ServerやOracleといった一般的なデータベース製品に接続してデータを抽出する場合、Accessではリンクテーブルを利用することで容易に行なえます。

データの更新についても、リンクテーブルを元に更新クエリで行えますが、「トランザクション管理」はクエリではできません。

信頼性の高い業務アプリケーションを作るには、データの一貫性を担保する「トランザクション管理」の仕組みは欠かせません。

「トランザクション」とは、データを複数行まとめて更新する際に、対象のデータすべての更新が完了するまで更新内容を保留し、もし途中でエラーがでて更新に失敗したら、それ以前に実施した更新結果をなかったコトにする仕組みです。

詳しくは以下の記事で解説しています。
興味があればご参照ください。

外部のデータベースに対する更新処理で、この「トランザクション管理」を組み込もうとする場合は、「ADO」で実装する必要があります。

慣れてきたら是非チャレンジしてみてください。

ポイントは「レコードセット」を使いこなす

「DAO」や「ADO」を使用するにあたって重要な仕組みとして「レコードセット」があります。

当項ではその「レコードセット」を簡単に紹介していきます。

一言で言えば以下です。

メモリー内で保持する仮想的な一時テーブル

当記事の【前編】でも少し言及しましたが、Accessにおけるテーブルの使い方として「ワークテーブル」があります。
「ワークテーブル」は一時的に必要なデータを格納しておき、そのワークテーブル内のレコードを使用して、レポートの連結元データとして使用したり、複雑な集計を行うためのデータとして使用するといった使い方があります。

ただ、ワークテーブルでは、物理的にローカルテーブルにデータを書き込んだり読み込む必要があり、HDDへのアクセスが発生し、高速な処理は期待できません。

かたや「レコードセット」はメモリー内で保持する一時テーブルです。
メモリーはHDDへのアクセスが発生しないため、レコードセットの全行をループする、レコードセットの個々の行を参照して判定処理をするといった場合でも、ワークテーブルと比較した場合に高速な処理が期待できます。

また、レコードセットでは、レコードを扱うための様々なメソッドやプロパティが用意されています。
これらのメソッドやプロパティを活用することで、効率よくデータベースを扱うプログラミングが実装できます。

レコードセットは以下の流れで使用します。

  1. DBへの接続情報を指定してConnectionオブジェクトを生成
  2. Recordsetオブジェクトを生成し、ConnectionオブジェクトとSQL文字列を渡して開く
  3. SQLの実行結果をRecordsetオブジェクトに格納
  4. Recordsetオブジェクトに入った行をループして処理をしたりフォームに表示させたり

イメージ図としてはこんな感じで。

「ADO」や「DAO」のレコードセットを使いこなせれば、この仕組みはVBA以外のプログラミング言語でも共通の仕組みであり、もし今後別のプログラミング言語を新しく習得しようとした場合でも、きっと貴方の役に立つことでしょう。

是非積極的に習得を目指してください。

中の人
中の人

本格的な業務アプリケーションでは、SQL ServerやOracleといったデータベースと連携します。

そのため、最終的には「ADO」を完全にマスターすれば、Accessであってもプロ顔負けの高品質な業務アプリが作成できます!

 
 

最後に

今回は、Accessを初めてさわる人向けに、Accessの主要な機能の説明や、データベースの基礎的な説明、Accessの機能ごとの習得ステップについて、【前編】に続いて紹介させていただきました。

今回の記事をきっかけに、Accessに対して興味を持っていただいたり、自身のスキルアップのためにAccess習得の参考にしていただければ幸いです。
今回も読んでいただきましてありがとうございました。

それでは皆さまごきげんよう!

タイトルとURLをコピーしました