第7章では、指定した条件でテーブルを書き換えるクエリ(アクションクエリ)とテーブル間の不一致データを探すクエリ(不一致クエリ)について学習する。
アクションクエリを使って、「T1在庫マスター」を以下の手順で書き換える。
このSTEPでは、時間の経過を条件とするので、テキストと同じ結果を得るために、コンピュータの日付を1999年12月20日にすること。
「中古車在庫管理.mdb」を開き、すでに用意してある選択クエリを利用して実習を進める。
更新クエリを使って、入庫日から30日経過したレコードの金額を97%の金額に更新する。
テーブルを書き換えるので注意して操作すること。(自己防衛的には、mdbファイル(あるいは、更新するテーブル)をコピーしておき、失敗したら、前のコピーから戻して、やり直すのが良い。なお、テーブルをコピーして、コピーしたものから元のテーブル「T1在庫マスター」にコピーするとき、リレーションシップがあると貼り付けできない。その場合は、一時リレーションシップを削除する必要がある。)
実習の手順(選択クエリで確認してから、更新クエリを作成する。)
テキストにあるように、同じ条件が成立すると、クエリの実行ごとに、更新されてしまう。(クエリの実行のたび、値引きがされることになる。)
実際の業務では、更新クエリの実行日を記録する「金額訂正日」フィールドを作成して、これも抽出条件に加えることで、30日ごとの価格の値引き処理とすることができる。
この確認の実習では、テーブル「T1在庫マスター」をコピーして、コピーしたものでテストするのが良い。
テーブル作成クエリを使って、入庫日から36カ月経過したレコードを抽出し、別テーブル「T4廃却リスト」を作成する。
実習の手順(選択クエリで確認してから、テーブル作成クエリを作成する。)
テキストにあるように、同じ条件が成立すると、クエリの実行ごとに、新しいテーブルが作成される。
削除クエリを使って、テーブル「T4廃却リスト」へコピーしたレコードを「T1在庫マスター」から削除する。
テーブル「T1在庫マスター」とテーブル「T3商談データ」には、参照整合性の設定で、レコードの削除が制限されている。不要レコードを削除できるように、この制限を解除する。
《リレーションシップ》ダイアログボックスで、《レコードの連鎖削除》をチェックする。
実習の手順(選択クエリで確認してから、削除クエリを作成する。)
データベースファイルのメンテナンス時には、必要に応じて参照整合性の緩和などをするが、メンテナンスが終わったら、もとの設定に戻すこと。
追加クエリを使って、入庫日から24カ月経過したレコードを抽出し、テーブル「T4廃却リスト」に追加する。追加クエリの実行には、追加するレコードを受け入れるテーブルが用意されていること。
実習の手順(選択クエリで確認してから、追加クエリを作成する。)
削除クエリ「Q6廃却データ削除」の抽出条件を変更し、実行する。
テーブルとテーブルの共通のフィールドで照合して、片方にしか存在しないデータを探すことができる。例えば、「商品マスター」に登録されている商品の中で、売上のない商品を見つける場合に使う。
不一致クエリを使って、「T1在庫マスター」から、引き合いのない在庫を探す。
引合いのあった在庫は、「T3商談データ」に明細がある。2つのテーブルに共通のフィールド「在庫NO」で探す。
不一致クエリは、ウィザードが用意されているので、それを使う。
2つのテーブルが結合され、結合プロパティに《2.T1在庫マスターの全レコードとT3商談データの同じ結合フィールドのレコードだけを含める。》になっている。
比較に使うテーブルの「在庫NO」フィールドは、表示せず、抽出条件が「Is Null」になっている。
次の操作のためにクエリを閉じる。コンピュータの日付をもとに戻すこと。
2つのテーブルを指定するが、1番目に指定するテーブルと2番目に指定するテーブルと、順序を入替えると違う結果になる。
「売上明細リスト」を1番目に指定し、2番目に「商品マスター」を指定すれば、「商品マスター」にないものを「売上明細リスト」に記入していないかどうかを発見できる。(ただし、これは、参照整合性の設定をしておけば、マスターに無い商品を入力することは回避できる。)
マクロ機能の概要、基本的なマクロの作成について学習する。
「マクロ」は、メニューやコマンドを選択してデータを処理する1連の作業を自動化する機能である。
「フォームでデータをテーブルに入力し、蓄積されたデータをもとにクエリを実行し、実行結果をレポートで出力する」といった定型の処理をマクロで自動化できる。
マクロではひとつの処理を「アクション」といい、53種類用意されている。
主な処理とアクション名については、p.199の表を参照のこと。
次の2つの独立したマクロを1つのマクロオブジェクトにまとめ、マクログループ「MG在庫」を作る。そして、それぞれのマクロをフォームのコントロールに設定する。
マクロは《マクロ》ウィンドウに作成する。
《マクロ》ウィンドウの各部の名称と役割は、図を参照のこと。
初期画面では、《マクロ名》列と《条件》列は、表示されない。
フォーム「F1在庫リスト」を開くマクロ「M在庫リストを開く」を作成し、名前「MG在庫」を付けて保存する。
フォーム「F0メインメニュー」をデザインビューで新規に作成し、「在庫リストへ」ボタンを配置する。
「在庫リストへ」ボタンをクリックすると、マクロ「M在庫リストを開く」の処理を実行するように設定する。
イベント
マクログループ名.マクロ名
「MG在庫」を開き、フォーム「F1在庫リスト」を閉じるマクロ「M在庫リストを閉じる」を作成し、上書き保存する。
フォーム「F1在庫リスト」に、「戻る」ボタンを作成し、マクロ「M在庫リストを閉じる」を設定する。
フォーム「F0メインメニュー」の「在庫リストへ」ボタンと、フォーム「F1在庫リスト」の「戻る」ボタンの動作を確認する。
以上