Microsoft Access Club >初心者講座 >永年勤続管理ソフト >このページ >次頁 - 前項


永年勤続管理ソフト--05_追加クエリの作成



Accessソフトの作成中、何回となくシステム構成の確認を行って下さい。当初と比べ、作り始めるとあれこれと考え方、組み立て方が変わってきます。これは、意志が弱い、未熟者であるからじゃないですよ。ベテランでも同じです。

では、おさらいの意味で、永年勤続管理ソフトの構成を再確認しておきましょう。一般的に、 永年勤続のシステム化には、大きく分けて2通りの考え方があります。

 システム構成の確認

  1. 社員ごとに基準日で、勤続年数を算出する場合。例えば、1999/04/01入社の方は、2001/05/31では、1年2ヵ月の勤続年数ですね。
  2. 表彰対象期間内で、何年を経過している社員を抽出する場合。上記の2001/05/31の基準日で申しますと、この基準日とは、言い換えると「例えば、1年以上2年未満の勤続年数である社員の入社年月日を求める」ことに異なりません。この例では、1998/06/01から1999/05/31の入社社員が対象となります。

社員数の多い会社などでは、1の方がベターでしょうね。
この場合は入社日から基準日までの経過年月日をそれぞれ社員ごとに求めます。そして、月以下の端数を切捨てし、年単位で抽出をかけます。

しかし、今回のシステム作りでは「マクロの使用」が大前提ですので、2の方式を採用します。また、厳密にシステムを構築するには、「欠勤」の取扱いが重要なんですが、今回は無視しています。

では進めていきますよ。

 元になるテーブルの作成

まず、対象者リストを出力する元となる「テーブル」を作成します。このテーブルは、No3で解説しました「tbl_kinzoku」テーブルです。このテーブルに該当する社員だけを"追加クエリ"を用いてテーブルに"追加"していく仕組みです。

当然、追加クエリを実行する前に前回のデータが格納されているので、「tbl_kinzoku」テーブルデータを削除する必要がありますね。
このため、削除クエリを追加クエリを実行する前に必ず実行して下さい。

一般的に、追加クエリと削除クエリとはセットで用いる事が多いですから、どちらか一方が現れたら、もう一方が必要か否か必ず確認する習慣を付けましょうね。

追加クエリの作成

それじゃ、"追加クエリ"から作成を行っていきましょうか。

サンプルでは、5年毎の表彰を想定していますので、5年から30年まで6個の"追加クエリ"を新規作成して下さい。

  1. 当講座のNo4で作成した「qry_basic」クエリのコピーを作成します。
  2. クエリ名を「qry_kinzoku05」とします。
  3. クエリを元に、最終的に永年勤続5年以上6年未満の社員を抽出することになります。
  4. 「qry_kinzoku05」クエリをデザインビューで開くと、下記のような画面になっています。

  1. このデザインビュー画面を開いたまま、上部にある「メニューバー」の「クエリ」から追加クエリを選択します。
  2. 下記のダイアログが開きます。
    このダイアログは「追加クエリ」独自のもので、カレントデータベースを選択し、テーブル名にtbl_kinzokuを指定します。指定するとは、tbl_kinzokuテーブルにデータを追加するということです。
  3. 最後に、OKをクリックすると完了です。ちなみに、"他のデータベース"とは、今開いているデータベース以外を指します。

  1. 選択クエリのデザインビュー画面から、追加クエリに変換させると、下記のようにデザインビューが変化します。
  2. レコードの追加項目が現れます。
    これはフィールドの社員IDは、tbl_basicテーブルの社員IDフィールドを指し、レコードの追加の社員IDは、先程指定したtbl_kinzokuテーブルの社員IDフィールドを意味します。

  1. 最後に、5年以上6年未満の社員を抽出するために、下記のような新しいフィールドをクエリに新規作成し、DateAdd関数で入社から5年目の年月日を求める構文を記述し ます。

  1. 下記のクエリフィールドの中で 5:5 のフィールドがあります。
  2. 「一体これはどこから来たフィールド名なんだ」とお思いでしょうが、まったく架空のフィールド名です。何だっていいんです。このクエリは追加クエリですから、この 5:5 のフィールドから「対象勤続年数」フィールドへ 5 という定数が追加されるだけです。例えば、架空のフィールド:5 でもOKです。

  1. 追加クエリを実行されたテーブル内には、下記のように表示されます。

これで「qry_kinzoku5」クエリの作成が終わりましたので、次に

  1. 10年を対象とした追加クエリ「qry_kinzoku10」
  2. 15年を対象とした追加クエリ「qry_kinzoku15」
  3. 20年を対象とした追加クエリ「qry_kinzoku20」
  4. 25年を対象とした追加クエリ「qry_kinzoku25」
  5. 30年を対象とした追加クエリ「qry_kinzoku30」

をそれぞれ作成してください。手順は同じです。

  1. ここに用いている DateAdd関数 は、「入社日」から**年("yyyy")後の年月日を返 すAccessの組み込み関数です。
  2. これらクエリは追加クエリですから、クエリ結果を目で見ることができません。よって、一覧表示 を行うクエリを作成します。
  3. クエリ名は、「qry_kinzoku」です。サンプルファイルにありますからご覧ください。

  1. 出来上がりのクエリを表示させると下記のようなリストになります。
社員ID 社員名 性別 入社日 勤続5年 勤続10年 勤続15年 勤続20年 勤続25年
1 Access Boy 1975/10/01 80/10/1 85/10/1 90/10/1 95/10/1 00/10/1
2 Hayama 1977/04/01 82/4/1 87/4/1 92/4/1 97/4/1 02/4/1
3 Sakura 1976/05/01 81/5/1 86/5/1 91/5/1 96/5/1 01/5/1
4 松本 武 1981/04/01 86/4/1 91/4/1 96/4/1 01/4/1 06/4/1
5 高松 一郎 1981/03/01 86/3/1 91/3/1 96/3/1 01/3/1 06/3/1
6 国阪 真知子 1986/04/01 91/4/1 96/4/1 01/4/1 06/4/1 11/4/1
7 坂城 祥子 1985/04/01 90/4/1 95/4/1 00/4/1 05/4/1 10/4/1
8 加藤 幸一 1985/08/01 90/8/1 95/8/1 00/8/1 05/8/1 10/8/1
9 斎藤 隆 1986/01/04 91/1/4 96/1/4 01/1/4 06/1/4 11/1/4
10 足立 良子 1986/02/01 91/2/1 96/2/1 01/2/1 06/2/1 11/2/1
  • 作成した「追加クエリ」をこのままの状態では、利用できません。抽出条件を設定し必要なデータのみ追加を行う構成に変更します。
    しかし、今の段階では何も設定しないで下さい。この抽出条件の設定は、フォーム上のテキストボックスから行います。このフォームについては、後々お話します。※No13で解説

これで「追加クエリ」の作成は完了です。

 まとめ

テーブルから一気に追加クエリを作成するのではなく、今回のようにクエリの基本である「選択クエリ」をまず作成して、ここから「追加クエリ」に変換する方法をマスターして下さいね。

 

ページの先頭へ 前ページへ戻る

 


永年勤続管理ソフト--05_追加クエリの作成


 

-Microsoft Access Club-