追加・削除のできるWebアプリを作る(1) ~データベースのデザイン |
データアクセスページのサンプルとして、「非常勤職員の出勤簿」を作ってみましょう。リレーションを設定したテーブルを使い、レコードの移動、追加、削除などができ、しかも演算フィールドによって計算結果を表示できるようにしてみます。
基本的な操作は、Accessの選択クエリからフォームやレポートを作る作業と、大きく変わりません。しかしリレーションや演算フィールドの扱いが少し異なります。
- 使用するテーブル -
ここでサンプルとする「非常勤職員の出勤簿」は、以下の2つのテーブルからできています。
・ |
t_非常勤職員 非常勤職員の名簿を記録するマスターテーブルです。フィールド構成は表1のようになっています。「単価」フィールドは、非常勤職員(要するにパートタイマーとアルバイト)の時間給を示しています。常勤職員と異なり、1箇月に何時間働いたかで給与が決まります。
表1:テーブル“t_非常勤職員”のデザイン
|
・ |
t_出勤簿 非常勤職員の出社時刻と退社時刻を日別/個人別に記録していきます。フィールド構成は表2のようになっており、「職員番号」フィールドの値をキーとして“t_非常勤職員”テーブルと1対多のリレーションを設定します。“t_出勤簿”が多側、マスターとなる“t_非常勤職員”が1側です。
表2:テーブル“t_出勤簿”のデザイン |
- 選択クエリのデザイン -
テーブル“t_出勤簿"には、出社と退社の時刻しか記録されません。これらを元に計算を行い、1人の非常勤職員の1日の勤務時間を計算し、さらに勤務時間と単価(時間単位の給与)を乗算して、1日の給与額を求めなければなりません。
これらは選択クエリの演算フィールドで求めます。クエリは“q_出勤簿”という名前で、表3および画面1のようなデザインとなります。
表3:選択クエリ"q_出勤簿"のデザイン
画面1:選択クエリ“q_出勤簿”のデザインビュー
- 基礎データの確認 -
テーブル“t_非常勤職員”には、画面2のようにあらかじめ各非常勤職員の基礎データが入っています。本来なら、この他に氏名の読みがなや住所、電話番号などの情報も必要ですが、煩雑になるので簡単なものにしておきました。
この基礎データを使って、選択クエリ“q_出勤簿”を通して各非常勤職員の勤務状況(何日に、誰が、何時から何時まで勤務したか)を記録したものが、画面3の選択クエリ“q_出勤簿”のデータシートビューです。
画面2:レコードを記録したテーブル“t_非常勤職員”のデータシートビュー
画面3:レコードを記録した選択クエリ“q_出勤簿”のデータシートビュー
- リレーションは別途設定する -
Accessで通常作成するアプリケーションなら、非常勤職員の出勤情報は選択クエリ“q_出勤簿”を元にしたフォームで入力します。データアクセスページでは、このようにリレーションを設定したテーブルを連携させてデータを入力したり、削除や書き換えを行う場合には、まずデータを操作したいテーブルを元にページを作り、それにリレーション先のテーブルまたはリレーションを反映させた選択クエリから、フィールドを抜き出して貼り付けることになります。
選択クエリ(サンプルでは“q_出勤簿”)を元にしたページも作成できますが、そうするとデータの入力や削除ができず読み取りのみ(リードオンリー)のページとなってしまいます。この点に注意しましょう。
|
|
|