<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>在庫のザの字はどう書くの〜♪
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20



で、このクエリーを追加クエリーにします。

追加先はもちろん、さっき作った[注文テーブル]です。



[注文テーブル][Q_在庫状況一覧]が結びつくようにしましょう。
同じフィールド名なら自動的に結びつきますけど、違った名前のものは結びつかないので、うまく結びつくようにしてあげてください。

[注文日]は、どうしますかね・・・。とりあえず、「今日の日付」を入れましょうか。

グリッドにDate( )と入力しましょう。追加時に今日の日付が[注文日]に入ります。


で、このクエリーになんか名前をつけて保存してください。Qi_注文する商品にしましょうかね。

あ、別に意味はないんで、お好きな名前をつけてください。
で、いよいよ実行の段取りです。

在庫状況一覧表フォームに作った[注文]ボタンのクリック時のイベントを作ります。

Qi_注文する商品を開く(実行する)わけですね。

Private Sub コマンド20_Click()

DoCmd.OpenQuery "Qi_注文する商品"

End Sub

マクロでやるなら、「クエリーを開く」というアクションひとつです。開くクエリーの名前を忘れないように。


じゃ、フォームビューに切り替えて実験。どれか注文してみましょう。[注文]ボタンをクリックすると・・・???

アクションクエリーなので、こんなメッセージ出ますよね。まあこれは致し方ない。
[はい]の方のボタンをクリックするとして、ふたつみっつ商品の注文をしてみるとしましょう。

もし、いちいちこのメッセージが出るのがうざったい・・ということなら、「メッセージの設定」というマクロアクションがありますので、それを「いいえ」にします。
すると、その後から確認メッセージ関連はいっさい表示されなくなります。
エラーメッセージとかは出ますから、ご安心を。(なにを??)

Private Sub コマンド20_Click()

DoCmd.SetWarnings False

DoCmd.OpenQuery "Qi_注文する商品"

DoCmd.SetWarnings True

End Sub

コードではSetWarningsって書きます。
実際はプロシージャとかマクロを正常に抜ければ、自動的に「はい」(True)の状態になるもんなんですけど、いちおう気分的になんとなくこんな風にしてみました。

でも、これはいちおう、クエリーが正しく動いて、ひととおりの動作確認ができてから、一番最後に付け加えるようにしましょうね。


で・・・いったん在庫状況一覧表フォームは閉じて、注文テーブルを開いてみましょう。

どうです?[注文]ボタンをクリックした商品、注文テーブルの中に追加されてます?

これはテーブルですから、商品マスターとか出庫テーブルの中身を気にせず、自由に[今回の注文数]をいくらでも入力できるってわけですよね。


このテーブルをこのまんま使ってフォームを作って、注文数を入力するようにしてもいいんですけど、これじゃどこのメーカーのなんていう商品かわかんないですよね。
まあ、そういうテーブルにしてもよかったんですけども・・・。

そういう場合は、こんな風に3つのテーブルだ結びついたクエリーを
作るとよいでしょう。

あくまでも注文テーブルのフィールド主体で、商品名とメーカー名だけ、マスターから拾うようにします。

こんな感じー。このクエリーからなら、注文数入力することできますよね。

Q_注文数入力っていう名前にしてみました。

で、このクエリーを基に、こんな感じのフォームを作ってみました。
メインは右端の注文数の入力欄。そこが目立つよう、見やすいフォームを作ってみましょう。

メーカー名は別に要らなかったカナ・・・ここでメーカーを変更したいのであれば、コンボボックスにして再選択できるようにしてもおもしろいかもしれません。


んー・・・例えば・・・うっかり[注文]ボタンクリックして選んじゃったけど、やっぱ注文やーめた、とかいうときってどうしたらいいんでしょう・・・。

削除クエリーを作って、削除ボタンみたいなのをフォームに作って、それクリックしたらその行だけ削除するような仕組みを作ってもよさそうですよね。
それは、さっき作った追加クエリーと、大筋は同じですし・・・。

でも、今日は、実際に削除するのではなくて、削除フラグみたいなのを作って、「やっぱり注文しないわ」っていう選択ができるようにしてみようと思うんです。



こんなふうに、[注文テーブル]に、Yes/No型のフィールドをいっこ付け足しておきます。
YesかNoかなんで、どっちでもいいんですが、例えば、チェックがついてるものだけ注文、チェックのついてないものは注文しない、っていうふうにすることだってできますよね。

で、Qi_注文する商品クエリーの中に、このフィールドを付け足します。追加するときに必ずOn(True)して追加するようにすればいいでしょう。

んじゃあ、ちょっと実験。クエリーは保存して閉じましょう。
改めて在庫状況一覧表フォームから、なんか注文してみましょう。

いかがでしょう。今まで追加したレコードに関しては[まじ?]フィールドはOff状態だと思いますけど、新しく追加した今のレコードは、Onになってますよね。