シェアする

Lesson7 非連結フォームからレコードを操作する

では、いよいよVBAを使用して非連結フォーム上に入力したデータをテーブルへ追加、更新、削除を行います。

その前に、なぜ、わざわざ非連結フォームを使用するかについてです。

ご存知のとおり、ACCESSはフォームのレコードソースにテーブルを指定することで連結フォームになります。連結フォームを使用することでテーブルへのデータ入力が容易になります。

横に長いテーブルに1フィールドずつデータを入力するより、1画面にまとまった入力フォームを使用する方が入力しやすいし、ミスも少なくなります。

連結フォーム機能はACCESSを使用するメリットの一つで、入力フォームをプログラミングせずに作成することができます。

デメリットとしては、ACCESSはスタンドアロン(1つのパソコンにACCESSファイルを置き、使用するユーザーは1人。)で動かすことを前提としているので、ファイルサーバーにACCESSファイルを置き、複数人で使用する環境には向きません。

こんな環境にはSQL Serverなどのデーターベースを使用することが良いのですが、小規模のデーターベースには費用面や運用の難しさから導入は一気に難しくなります。

このような事情があるためファイルサーバーにACCESSファイルを置き、複数人で使用する使い方をするわけですが、こんな環境では連結フォームを使用すると壊れやすくなります。非連結フォームでVBAを使用してデータを追加・更新していくことが、データーベースの安定性を高めることがポイントの一つです。


さて、非連結フォームに配置したテキストボックスに入力したデータをテーブルに反映させる手続きを説明します。

ACCESSでは、DAO(Data Access Object)という仕組みを使います。

ACCESSは、mdbファイル(accdbファイル)を操作するソフトですが、mdbファイルは、内部でテーブル・クエリを扱うデーターベース部とフォーム・レポート・マクロ・VBAを扱うインターフェース部とに分かれています。

余談ですが、テーブルとクエリは同じ名前をつけることができないのに、テーブルとフォームは同じ名前をつけることができるのは、このような事情があるからです。

データーベース部の名前は Jet Database Engine という名前のデーターベースエンジンがテーブルやクエリを管理しています。

フォームやレポートとのデータのやり取りは、DAOやADO(ActiveX Data Objects)というミドルウェア(データーベース部とインターフェース部との間を受け持つソフトウェア)を介して行っています。

つまり、非連結フォームからレコードを操作するには、DAOやADOに命令を投げれば良いのです。

前置きはこのぐらいにして、次回は実際にDAOを使ってレコードを操作してみましょう。

シェアする

フォローする