<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



後は、さっき段取りを確認したアクションクエリーを、順序良く開くようにして、完成です。

Private Sub コマンド15_Click()
If MsgBox("在庫数を更新します。よろしいですか?", vbOKCancel) = vbCancel Then
Exit Sub
Else
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q_期初在庫更新"
DoCmd.OpenQuery "Q_累積テーブルに追加"
DoCmd.OpenQuery "Q_累積テーブルに追加_入庫"
DoCmd.OpenQuery "Q_注文テーブル削除"
DoCmd.OpenQuery "Q_出庫テーブル削除"
DoCmd.OpenQuery "Q_入庫テーブル削除"
DoCmd.SetWarnings True
DoCmd.Close
MsgBox "商品マスターの在庫数が更新されました。", , "棚卸処理は完了しました"
DoCmd.OpenForm "メニュー"
End If
End Sub

最初と最後に、メッセージが出るようにしてみました。
最初のメッセージボックスはキャンセルできるように、キャンセルボタン付きのメッセージボックスにして、キャンセルが押されたらプロシージャを抜けるようにしています。


やったー!ゴールです。おつかれさまでした。
ちょっと凝り過ぎちゃいましたかねぇ・・・。でも、データが出たり入ったりする様子、いろいろご覧いただけたんじゃないかなと思います。
いやー、ほんとにこういうのを作り込むのは大変なんですよ。

細かいところはまだいろいろあると思いますが、これをたたき台にして、みなさんなりの在庫システムを目指してみてくださいね。

後は、起動時の設定など必要に応じて整えて、最後にデータベースの最適化をしておきましょう。
テストでレコード削除したりなんだり繰り返してますから、データベースサイズ、結構変わると思いますよ。


どうしても、何か作り込むとき、レポートとかフォームから考えてしまいがちですけれど、最終的にテーブルのデザインがしっかりしてないと、すごくめんどうくさいことや回りくどいことをして、余分な処理をいっぱい詰め込まないとならなくなっちゃうんです。

在庫管理だけじゃなくて、出庫や入庫、発注処理なんかもしっかり作りたいな、と思ったら、それなりのテーブル構造を持たせておかないとならないってところ、何ヶ所か出てきましたよね。もちろん、初っ端からわかってればそれに超したことはないんですけど、こういうのはやってみないとワカラナイってこともあるんで、とにかくいろいろ作ってみて判断するより他ないでしょう。

VBAで作りたいだのテーブルの正規化がどうだのリレーションシップがどうだのというのは後からついてくること。
とにかくデータの流れを追ってみて、処理にあったテーブル設計ができるようになること。
これがAccessを使いこなす上での最終目的だと思ってください。