Microsoft Access 掲示板

異なるレコード間での集計・順番に計算する方法 / 4

9 コメント
views
4 フォロー
4

ありがとうございます。
情報が不足しており申し訳ありません。
D1~ 日付に見立てたフィールドで~31まで用意し、別のフィールドで月、年を用意をしています。
ユーザとしては 入力フォームで
製品ごとに ある年月の 1日~31日 フィールドへ入力する形にしています。
入力したデータは 別のテーブルで日付に変換して 日付順に所要展開できるように考えています。
クロス集計クエリを逆にしている形です。

ご指摘があったように A,Bが同じ部品であることをバージョン情報として持たせるようにしたいと思います。

やはり、クエリでの計算は難しく
バージョン管理品 の場合は 変更順に Aが0となった場合は、Bから引くといった
VBAでの処理が必要と理解しました。

通報 ...
  • 6

    D1~ 日付に見立てたフィールドで~31まで用意し、別のフィールドで月、年を用意をしています。
    ユーザとしては 入力フォームで
    製品ごとに ある年月の 1日~31日 フィールドへ入力する形にしています。
    入力したデータは 別のテーブルで日付に変換して 日付順に所要展開できるように考えています。

    D1~ のテーブルは入力用の一時テーブルで、入力後、縦に展開する正規化されたデータに変換してテーブルに格納するということですね。

    レコード間を順に集計していく処理(連番とか累計)はクエリは苦手です。複雑かつ重い処理になりがちです。特に今回の安形だとバージョンがあったりとより複雑になります。
    VBAでレコード移動しながら処理していくのが高速かつシンプルにできます。

    下記に、連番をクエリまたはVBAでする場合のサンプルがありますので、参考になると思います。

    グループ毎連番を自動入力する関数 - hatena chips

    7

    お世話になります。 はい、
    D1~ のテーブルは入力用の一時テーブルで、入力後、縦に展開する正規化されたデータに変換してテーブルに格納するということですね。
    上記の通りになります。

    hatena様の 累計値をテーブルに自動入力する関数 を使用させていただき
    画像のような 所要量計算テーブルで所要量を計算し、累計残高としています。

    製品のマスタとしては、 カレー・肉じゃがに使う じゃがいもは 代替品でOKとした マスタテーブルを持ち、
    変更順をデータとして持たせるとします。

    このとき、消費計画のテーブルでは
    メークイン が0になったら 男爵イモ の在庫を使う ・・ のようにしたいと考えております。
    累計処理で計算すると、 まだ 男爵イモを使用しなくても良い 時でも 引いてしまうため
    この処理について良い案がないか というご相談になりました。

    イメージばかりですみません・・。

    画像1
    画像1