<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
  Ac2002--VBAの沼 > テーブルのデータを扱う、ということ
  



テーブルのデータを扱う、ということ

今回からしばらくの間「テーブルのデータを扱う」というようなことをいろいろとお話していこうと思います。
これがですね・・・。皆さんが今、「MS-Access」とか「データベース」というものをどう理解していらっしゃるかによって、難しく感じる場合もあるだろうし、あっさり理解できる場合もあるんじゃないかなと、そういう感じの内容になってくると思います。

ここで少し、これからお話することの背景について書かせていただきますね。
既にご存知のこと、あるいは当たり前すぎて考えたこともないこと・・・かもわからないですが・・・。



会社や学校といったさまざまな団体が活動を続けると、いろいろな情報が発生します。
会社の取扱商品のリストとか、売上の情報とか、請求書発行のために売上の情報を集めて集計したデータとか、取引先のリストとか、売掛金の回収のためのリストとか、社内の会議室の使用状況とか、会社内の物品管理とか・・・。
これらは別にノートに書き残していったっていいんでしょうが、日々たくさんの情報が発生する場合、人間の手書きだと、間違いとか、非効率だったりとか、時間がかかったりとか、イヤになっちゃったりとか、いろいろ問題が発生しそうです。そこで、こうした情報を貯めておくという仕事を、コンピュータにゆだねよう、人間は野に出ることに専念しよう、ということで、ここ十数年の間にさまざまな会社や団体にコンピュータが普及して、今日にいたるわけです。

そして、そのために作られたソフトウェアのことを総称して「アプリケーションソフト」と呼びます。
ここまで広く解釈しちゃうと、なんでも「アプリケーションソフト」に含まれちゃいそうなんですけど・・・。ワープロとかも、「見積書を作るためのソフトなんだから」という意味で捉えれば、アプリケーションソフトの仲間です。

さて・・・アプリケーションソフトの実体について、大雑把に考えてみましょう。

単純にバラして見てみると、「データがたまるところ」と「データを表示したり印刷したり検索した結果を出すところ」のふたつに分かれます。
黄色い丸の中が、「データベース」がやる仕事。青い丸の中は、Visual BasicとかVisual C++とか各種Web系の技術等々を駆使して作ります。
「データを蓄積し、蓄積したデータを安全かつ正確に保持する」ために、でーたベースというものをサーバーなりホストマシンなりにインストールして、使います。有名どころとしては、OracleとかSQL ServerとかDB2とか、そういう製品ですね。

したがって、データベース「だけ」用意しても、そこから請求書を出すとか、入力画面を出すとか、そういうことは起こらないのです。
データベースからデータを引き出してきれいに印刷するとか、入力画面から入力したデータをデータベースに蓄積するとか、そういうのは別に作るわけです。

まあ、OracleとかSQL Serverとかそういう「データベース管理システム」をインストールすると、管理ツールとかがいろいろ用意されてて、テーブルの中のデータの内容なんかをさくっと見ることができるようにはなってはいるんですけどね。
とにかくこの二つがそれぞれきちんと機能して、双方にやり取りができるようになって、初めて「アプリケーションソフト」と呼べるようになるんだなぁと、そう思ってください。


そんなわけで、アプリケーションをひとつ構築するっつっても、大変なんです。
でも・・・これが普通なわけですよ。。。



では、MS-Accessはどうなんでしょう。

MS-Accessは、こうした「アプリケーションを作るためのもの」をひとつのファイルの中にきゅっと詰め込んでしまうことができるデータベース管理システムです。っていうか、MDBっていう拡張子のパソコンファイルを作るわけなので、データベースソフトって呼んじゃったほうがしっくり行くのかもしれないですけどね・・・。
確かにパソコンファイルですけれど、その中をひとたび開くと、ちゃんと「アプリケーションを作るための道具」がそろってます。

テーブルの設計/作成さえしっかりできていれば、入力画面とか印刷物はフォームとかレポートといったオブジェクトをうまいこと作っていけばいいわけだし、テーブルと入力画面を結ぶ「何か」のことは考えなくても簡単に結びついてくれる。用意されている道具をしっかり使いこなせば、そこそこのアプリケーションは作れるようにお膳立てがされてるわけです。


ところがです。
自分でプロシージャを作成し、その中からテーブルにデータを追加したり、テーブルのデータを検索したりする仕組みを作ろうとすると、話は違ってきます。

せっかく、オブジェクト間のつながりとか意識しなくても済むようにできてるはずのMS-Accessなのに、わざわざ「データベースへの接続」とかやらないとならないわけで・・・。

と、書くと、なんかとっても不便なものみたいですが、「プログラミング」という目線で見ると、これが当たり前の姿なのです。
これから、そこんとこをVBAで書くとどうなるのか、などなど、書き方などについてお話していこうかなと思うわけです。
(前置き長すぎ)
なんだか何を言っているのか自分でも訳が分からなくなってきましたが、とにかくまあそんなわけで、いろいろと覚えておかないとならないことがあるってことで。

VBAで「テーブルのデータを扱う処理を作る」ためには、ソレ用の「決り文句」があります。
ほんとはちゃんと意味合いを理解しないとならないものかもしれないんですが・・・。でも、今までやってきたコードのように、目で見て実感するのが難しいもんなので(データベースに接続できた、とかそういう感じが)、「こういうときは、こう書く」と、書き方のパターンを覚えていかれるのがいいかなと思います。ただ・・・こうした「決まった書き方」にも、上記のような背景からいろいろな意味あいが含まれているんだ、ということ、少しだけ意識してみてくださいね。