<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--見積書を作る
   1 > 2 > 3 > 4 > 5 > 6 > 7 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 16 



さて、これで、自動的に番号を振る仕組みを考えることができました。
そしたらいよいよ、ワークテーブルからリンクしてるテーブルへ「レコードを移す」処理を作りましょう。

わかりやすい方法としては、ちょっと前にもお話しましたが「追加クエリ」と「削除クエリ」をマクロもしくはイベントプロシージャにて立て続けに動かす、というのがあります。ご自分でコード書いて処理作ったりする人もいらっしゃいますけども、あとでいろいろ修正したり手を加えるときのことを考えると、アクションクエリをいくつか作って続けて動かすやり方の方が効率がよいと思いますよ。

では、クエリを用意しましょうか。アクションクエリってやつですね。
まあ、ごくごく単純です。「W 見積テーブル」をもとにしてクエリを作り始めましょう。

ツールバーの「クエリの種類」ボタンで、クエリの種類を「追加クエリ」に変更し、追加先のテーブルとしてリンクしてるテーブル「見積テーブル」を選びましょう。

フィールド名とかまったく同じにしていれば、自動的に「レコードの追加」というところにフィールド名が出てきてくれるので、細かいところはあまり考えなくてもよいと思いますよ。どうでしょう。「レコードの追加」ってとこ、それぞれ追加先のフィールド名が自動的に表示されますよね。

なんか適当な名前をつけて保存してください。こういうクエリは、わかりやすい名前がよいですよ。


おなじ要領で、「W 見積明細テーブル」のレコードを「見積明細テーブル」へ移すような追加クエリも作りましょう。
こいつも、わかりやすい名前をつけて保存してください。

このふたつを続けて動かすことで、見積および明細のレコードがリンクしてるテーブル・・・つまりは、今後、みんなで共有して使う予定の Master のテーブルに追加されることになるわけです。

でも、これだけでは「移動」したことにはならないですよね。 W の方にもまだレコードは残っています。

このまま残しておくと、一度Master の方に追加した見積がみなさんの手元にまだ残ることになりますから、ゆくゆくMaster の中にダブって追加しそうになっちゃいそうですよね。「移す」のであれば、W の方のレコードは削除しないとイケマセン。

W のテーブルのレコードをすべて削除する削除クエリを作りましょう。ふたつですね。

で、この4つのアクションクエリを続けてガンガン実行することで、あたかも W テーブルからリンクのテーブルへレコードが「移動した」みたいな動きを作るわけです。

手作業でひとつずつクエリ動かしてもいいんですけど、間違って先に削除クエリ開いちゃったら大変なことになっちゃうじゃないですか。だから、誰でも間違いなく正しい処理ができるように、マクロとかイベントプロシージャみたいなものを使って、ひとつの「処理」を作ろうってわけです。


みなさん、マクロの作り方はよろしいですよね?
まずは、いちばん基本の部分から・・・。

作ったクエリを4つ、「クエリを開くアクション」を使って実行するようにします。「クエリ名」のところに 4 つのクエリ名をひとつずつ指定してください。コメントのところに、それぞれどのクエリを開こうとしているのか、クエリ名などを書き添えておくと、後で確認しやすいと思いますよ。

実行の順番は・・・まあ、追加クエリの後削除クエリですけど、見積と明細をどっち先に動かすか、というのは、「リレーションシップ」っていうやつの設定などが若干からみます。たんにリレーションしてるだけなら、どっち先に動かしてもかまわないと思いますが「連鎖更新」「連鎖削除」という機能を使っている場合は、明細の方をさきに削除してください。

そしたら、マクロ名をつけて保存して、閉じましょう。

実験です。マクロ名をダブルクリックしてください。あるいは、クリックしてから「!実行」ボタンをクリック・・・え?そんなこと言わなくてもわかるって?そりゃそうですね。こりゃ失礼。

メッセージが立て続けに出ると思います。 4 つのアクションクエリの、実行時の確認メッセージですから、全部「はい」をクリックしてください。
処理の対象となるレコード件数などがメッセージとして表示されますから、いちおうすべてのメッセージの内容を確認しながら「はい」ボタンをクリックしてくださいね。

マクロ、終わりました?

そしたら、W テーブルと、リンクのテーブルをそれぞれ開いて見てみてください。
W のテーブルが空っぽになってて、リンクのテーブルの方に見積の情報が移っていればオッケーです。
これをスムーズに繰り返していくことで、みんなで個々に見積を作成し、作成した見積を後日共有することができる・・・というわけですね。

4つのクエリが正しく動いてくれることが確認できたら、確認メッセージは非表示にしましょうか。
マクロのデザイン画面で、1 行目にカーソルがある状態で「行の挿入」ボタンをクリックすると、1 行新しい行が現れると思います。そこに「メッセージの設定」というアクションを選びましょう。

引数は「いいえ」のままです。これで、このマクロが終了するまでの間、確認メッセージは表示されません。

このマクロを、見積の入力がひととおり落ち着いた後、クリックすればオッケーですね。