2001年1月15日新規作成
  関谷トップページへ トップページへ

No.25 Access2000U「第7章 クエリの活用, 第8章 マクロ機能」

2001.1.15 関谷

 第7章では、指定した条件でテーブルを書き換えるクエリ(アクションクエリ)とテーブル間の不一致データを探すクエリ(不一致クエリ)について学習する。

7-1 アクションクエリでデータを加工する

7-1-1 アクションクエリ

 アクションクエリを使って、「T1在庫マスター」を以下の手順で書き換える。

  1. 更新クエリ:入庫日から一定期間経過したレコードの金額を一定の率で割引
  2. テーブル作成クエリ:入庫日から一定期間経過したレコードをもとに廃却リストを作成
  3. 削除クエリ:廃却リストへ追加したレコードをマスターから削除
  4. 追加クエリ:入庫日から一定期間経過したレコードをもとに廃却リストへ追加

 このSTEPでは、時間の経過を条件とするので、テキストと同じ結果を得るために、コンピュータの日付を1999年12月20日にすること。
 「中古車在庫管理.mdb」を開き、すでに用意してある選択クエリを利用して実習を進める。

7-1-2 更新クエリ

 更新クエリを使って、入庫日から30日経過したレコードの金額を97%の金額に更新する。
 テーブルを書き換えるので注意して操作すること。(自己防衛的には、mdbファイル(あるいは、更新するテーブル)をコピーしておき、失敗したら、前のコピーから戻して、やり直すのが良い。なお、テーブルをコピーして、コピーしたものから元のテーブル「T1在庫マスター」にコピーするとき、リレーションシップがあると貼り付けできない。その場合は、一時リレーションシップを削除する必要がある。)

実習の手順(選択クエリで確認してから、更新クエリを作成する。)

  1. 準備された選択クエリで抽出条件を設定し、演算フィールドを作成する
  2. 「ビュー」で実行結果を確認する
  3. デザインビューで、更新クエリを選択する
  4. 《更新クエリ》ウィンドウで条件を再設定する
  5. 「実行」でテーブルを更新する
  6. 《更新クエリ》に名前を付けて保存する
  7. 実行結果(Q4、T1、アイコンの違い)を確認する

Point 更新クエリと時間の経過

 テキストにあるように、同じ条件が成立すると、クエリの実行ごとに、更新されてしまう。(クエリの実行のたび、値引きがされることになる。)
 実際の業務では、更新クエリの実行日を記録する「金額訂正日」フィールドを作成して、これも抽出条件に加えることで、30日ごとの価格の値引き処理とすることができる。
 この確認の実習では、テーブル「T1在庫マスター」をコピーして、コピーしたものでテストするのが良い。

7-1-3 テーブル作成クエリ

 テーブル作成クエリを使って、入庫日から36カ月経過したレコードを抽出し、別テーブル「T4廃却リスト」を作成する。

実習の手順(選択クエリで確認してから、テーブル作成クエリを作成する。)

  1. 準備された選択クエリで抽出条件を設定する
  2. 「ビュー」で実行結果を確認する
  3. デザインビューで、「テーブル作成」クエリを選択する
  4. 《テーブル作成》ダイアログボックスでテーブル名を入力する
  5. 《テーブル作成クエリ》ウィンドウで「実行」し、テーブルを作成する
  6. 《テーブル作成クエリ》に名前を付けて保存する
  7. 実行結果(Q5、T4、アイコンの違い)を確認する

Point テーブル作成クエリと時間の経過

 テキストにあるように、同じ条件が成立すると、クエリの実行ごとに、新しいテーブルが作成される。

7-1-4 削除クエリ

 削除クエリを使って、テーブル「T4廃却リスト」へコピーしたレコードを「T1在庫マスター」から削除する。

7-1-4-1 参照整合性の緩和

 テーブル「T1在庫マスター」とテーブル「T3商談データ」には、参照整合性の設定で、レコードの削除が制限されている。不要レコードを削除できるように、この制限を解除する。
 《リレーションシップ》ダイアログボックスで、《レコードの連鎖削除》をチェックする。

7-1-4-2 削除クエリ

実習の手順(選択クエリで確認してから、削除クエリを作成する。)

  1. 準備された選択クエリ「Q3アクション」で抽出条件を設定する
  2. 「ビュー」で実行結果を確認する
  3. デザインビューで、テーブル「削除」クエリを選択する
  4. 《削除クエリ》ウィンドウで「実行」し、レコードを削除する
  5. 《削除クエリ》に名前を付けて保存する
  6. 実行結果(Q6、T1、アイコンの違い)を確認する

Point 参照整合性の再設定

 データベースファイルのメンテナンス時には、必要に応じて参照整合性の緩和などをするが、メンテナンスが終わったら、もとの設定に戻すこと。

7-1-5 追加クエリ

 追加クエリを使って、入庫日から24カ月経過したレコードを抽出し、テーブル「T4廃却リスト」に追加する。追加クエリの実行には、追加するレコードを受け入れるテーブルが用意されていること。

実習の手順(選択クエリで確認してから、追加クエリを作成する。)

  1. 準備された選択クエリQ3で抽出条件を設定する
  2. 「ビュー」で実行結果を確認する
  3. デザインビューで、「追加」クエリを選択する
  4. 《追加》ダイアログボックスでテーブル名を選択する
  5. 《追加クエリ》ウィンドウでレコードの追加セルを確認する
  6. 《追加クエリ》ウィンドウで「実行」し、抽出したレコードを既存のテーブルに追加する
  7. 《追加クエリ》に名前を付けて保存する
  8. 実行結果(Q7、T4、アイコンの違い)を確認する

Let's Try 入庫日から24ヵ月経過したレコードを「T1在庫マスター」から削除する。

 削除クエリ「Q6廃却データ削除」の抽出条件を変更し、実行する。

7-2 不一致クエリでデータを抽出する

7-2-1 不一致クエリ

 テーブルとテーブルの共通のフィールドで照合して、片方にしか存在しないデータを探すことができる。例えば、「商品マスター」に登録されている商品の中で、売上のない商品を見つける場合に使う。

7-1-2 不良在庫の抽出

 不一致クエリを使って、「T1在庫マスター」から、引き合いのない在庫を探す。
引合いのあった在庫は、「T3商談データ」に明細がある。2つのテーブルに共通のフィールド「在庫NO」で探す。
 不一致クエリは、ウィザードが用意されているので、それを使う。

  1. クエリオブジェクトの新規作成をクリックする
  2. 不一致クエリウィザードを選択する
  3. レコードを抽出するテーブルで、「T1在庫マスター」を選択する
  4. 比較につかうテーブルで、「T3商談データ」を選択する
  5. 照合に使う共通のフィールドで、「在庫NO」を選択する
  6. クエリの結果を表示するフィールドの選択で、すべてのフィールドを選択する
  7. クエリ名「Q8不良在庫」を指定し、《◎クエリを実行して結果を表示する》で完了
  8. 実行結果(Q8不良在庫)を確認する。(選択クエリとなっている。)

参考 不一致クエリのデザイングリッド内容、結合プロパティ

 2つのテーブルが結合され、結合プロパティに《2.T1在庫マスターの全レコードとT3商談データの同じ結合フィールドのレコードだけを含める。》になっている。
 比較に使うテーブルの「在庫NO」フィールドは、表示せず、抽出条件が「Is Null」になっている。

次の操作のためにクエリを閉じる。コンピュータの日付をもとに戻すこと。

Point 不一致クエリウィザードでのテーブルの指定

 2つのテーブルを指定するが、1番目に指定するテーブルと2番目に指定するテーブルと、順序を入替えると違う結果になる。
 「売上明細リスト」を1番目に指定し、2番目に「商品マスター」を指定すれば、「商品マスター」にないものを「売上明細リスト」に記入していないかどうかを発見できる。(ただし、これは、参照整合性の設定をしておけば、マスターに無い商品を入力することは回避できる。)

Access2000U「第8章 マクロ機能」

 マクロ機能の概要、基本的なマクロの作成について学習する。

8-1 作成するマクロを確認する

8-1-1 マクロ

 「マクロ」は、メニューやコマンドを選択してデータを処理する1連の作業を自動化する機能である。
「フォームでデータをテーブルに入力し、蓄積されたデータをもとにクエリを実行し、実行結果をレポートで出力する」といった定型の処理をマクロで自動化できる。

8-1-2 アクション

マクロではひとつの処理を「アクション」といい、53種類用意されている。
主な処理とアクション名については、p.199の表を参照のこと。

8-1-3 作成するマクロの概要

8-1-3-1 使用するフォーム

8-1-3-2 作成するマクロ

次の2つの独立したマクロを1つのマクロオブジェクトにまとめ、マクログループ「MG在庫」を作る。そして、それぞれのマクロをフォームのコントロールに設定する。

8-1-4 マクロウィンドウ

マクロは《マクロ》ウィンドウに作成する。
《マクロ》ウィンドウの各部の名称と役割は、図を参照のこと。
初期画面では、《マクロ名》列と《条件》列は、表示されない。

8-2 フォームを開くマクロを作成する

8-2-1 フォームを開くマクロの作成

フォーム「F1在庫リスト」を開くマクロ「M在庫リストを開く」を作成し、名前「MG在庫」を付けて保存する。

8-2-2 フォームとコマンドボタンの作成

フォーム「F0メインメニュー」をデザインビューで新規に作成し、「在庫リストへ」ボタンを配置する。

8-2-3 コマンドボタンへのマクロの設定

「在庫リストへ」ボタンをクリックすると、マクロ「M在庫リストを開く」の処理を実行するように設定する。

イベント
マクログループ名.マクロ名

Point マクロビルダ

参考 メニューパネル、メニュー用フォームビルダ

8-3 フォームを閉じるマクロを作成する

8-3-1 フォームを閉じるマクロの作成

「MG在庫」を開き、フォーム「F1在庫リスト」を閉じるマクロ「M在庫リストを閉じる」を作成し、上書き保存する。

8-3-2 コマンドボタンの作成とマクロの設定

フォーム「F1在庫リスト」に、「戻る」ボタンを作成し、マクロ「M在庫リストを閉じる」を設定する。

8-3-3 マクロの確認

フォーム「F0メインメニュー」の「在庫リストへ」ボタンと、フォーム「F1在庫リスト」の「戻る」ボタンの動作を確認する。

参考 コントロールウィザードを使ったコマンドボタンの作成

以上