<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--アクションクエリ
 [アクションクエリとは] [追加クエリ] [テーブル作成クエリ] [更新クエリ] [削除クエリ]  [マクロで自動実行 1 2 3] 



■活用例 マクロで自動実行 2/3

そしたら、マクロ作りに入ります。
マクロを新規作成しましょう。

まず、「クエリを開く」アクションで、「Q_売上更新クエリ」を開きます。
つまり、このアクションクエリを実行する、って意味です。


後は同じ要領で・・・。
Q_チェック商品追加クエリを実行するようにします。
これで、「結果ばかりのテーブル」にレコードが追加されていくわけですよね。



で、あたかもチェックのついたレコードが「結果ばかりのテーブル」の方に移動したように見せるためには、「練習のテーブル」からレコードを削除しなければ・・・。
で、間髪いれずにQ_結果オーライ削除を実行します。

これで、この3つのクエリは自動的に次々実行されていくわけです。




んじゃ、このマクロに名前をつけて保存し、閉じましょう。
名前は何でもいいですよ。
マクロ1 のままでもいいんですけど、後でわけがわかんなくなっちゃわないようにしてくださいね。


さて、これで完了、なんですけど・・・。
何度も言うように、アクションクエリはほんとに実行します。レコードは更新され、追加され、削除されます。
元に戻せません。

テストの段階で、大切なテーブルのデータをほんとに使って作りこむ場合、「あ、余分なレコードまで削除しちゃった」じゃしゃれにならない・・・。という場合は、テーブルのバックアップとってからはじめましょうか。
いろいろなやり方がありますけど、わたしはテーブルそのものをコピー貼り付けしたりしてます。

まず、データベースウィンドウの中で、テーブルの一覧を表示させます。
今回、基データとなるのが「練習のテーブル」です。こいつをそのままそっくり別の名前で取っておこうと思います。
そうすれば、間違ってレコードを削除しちゃったとしても、何とかなりますよね。

「練習のテーブル」を右クリックすると、「コピー」っていうメニュー、出てくると思うんですけど・・・。
あるいは、クリックして青く選択しておいてから、キーボードの[Ctrl]+[C]でもオッケーです。

で、その後続けて、データベースウィンドウの中の、白くて特にオブジェクト名が何も書いてない、端っこの方を右クリックします。
あるいは、キーボードの[Ctrl]+[V]でもよいです。

こんなダイアログが出てくるはずです。
適当なテーブル名(まだこのデータベース内で使ってない名前。あたりまえですが)をつけます。
この操作で、テーブルをコピーすることができるんです。
クエリやフォームでも同じことができますので、この辺の操作もうまく活用していくと、開発効率上がっていくと思いますよ。

ぜひお試しください。




これで、「練習のテーブル」のバックアップを取ることができました。
もしへんちくりんな処理になっちゃって「練習のテーブル」の中のレコードがみんな消えちゃったとかいうことになっても、「へげへげ」っていう名前でバックアップがあるので、削除しちゃったレコードだけ「練習のテーブル」に追加したりすること、できますよね。

まあ、そういうことは失敗したとき考えましょう。
とにかく、まさか!に備える習慣をつけることは、決してマイナスにはならないです。




では、ちょっとテストを・・・。
このマクロ、実行してみましょう。

ダブルクリックするか、クリックして青く選択してから左上の「実行」ボタンをクリックします。
どっちの方法でもいいですよ。同じことですので・・・。


マクロに記述したアクションを1行ずつ実行していきます。
まず更新クエリが動きますね。
確認のメッセージが出ました。
「はい」をクリックしましょう。

と、わたしの場合は、6件該当レコードがあったようです。
つまり、「結果」フィールドにチェックがついてるレコードが8件あった、ってことですね。
これも確認メッセージです。「はい」をクリックします。

次に追加クエリが動きます。
まずは確認のメッセージです。
「はい」をクリックします。

と、こんな感じになりますね。↓
追加するレコードは6件ありますよ、ってことですね。
「はい」のボタンをクリックします。

と、最後に、削除クエリが動きます。
これも確認のメッセージです。
「はい」のボタンをクリックします。

で、該当する6件を削除するよ、という確認メッセージが出ます。
「はい」をクリックします。




と、これで、マクロはいちおうひととおりの仕事を終えました。
じゃ、「練習のテーブル」がどうなったか、開いてみてみましょう。


「結果」にチェックがついてた商品、削除されてなくなってます?



「結果ばかりのテーブル」の方はどうでしょう。
こっちに、チェックがついてたレコードが、売上金額が更新された状態で入ってきてますよね。
ふむ。どうやらクエリを連続して実行することで、レコードをあっちへ移したりこっちへ移したり、みたいなことができそうですね。


そしたら、もう一度処理を実行してみたいと思います。
マクロで自動化するなら、繰り返し繰り返し実行したときのこととかも考えなくっちゃなりませんからね。
とにかく何度も繰り返しテストしてみてください。

また何日か経って、「結果」のフィールドにいくつかチェックがついたとします。
適当に2〜3レコードチェックをつけておいてください。

なんで?って・・・。
だって、ここに何もチェックがついてなかったら、何も処理が行われないじゃないですか。

と、まあ、そういうテストも必要になりますけどね。