私は2つのテーブルを持っています。MS Accessでは、テーブルレコードを現在の値に加えて、別のテーブルのレコード数に更新するにはどうすればよいですか?
**tblMonthlyData**
ReportMonth | TotalItems | TotalVariances
Jan | 5 | 0
Feb | 1 | 1
Mar | 2 | 0
Apr | 8 | 4
May | 4 | 0
Jun | 5 | 0
Jul | 3 | 0
Aug | 5 | 0
Sep | 9 | 3
Oct | 1 | 0
Nov | 7 | 0
Dec | 6 | 0
と
**tblDailyData**
ID | ItemNum | CountedQty | SystemQty | Variance
1 | Item1 | 4 | 4 | 0
2 | Item2 | 8 | 5 | -3
3 | Item3 | 1 | 2 | 1
4 | Item4 | 6 | 4 | -2
明確にするために、我々は、上記のtblDailyData
は今日、2017年1月27日に行わカウントからであると言うでしょう。 Variance
は、両方の数量項目のデータに基づく計算項目です。
私は(すなわち、カウントが毎日行われており、各カウントデータがtblMonthlyData
に適切な月に追加する必要がある)のカウントの日付に基づいてtblMonthlyData
にTotalItems
へtblDailyData
内のレコードの数を追加しようとしています。上記の例では、Jan
レコードの場合、のTotalItems
に4(レコード数)を追加する必要があります。その結果、更新されたレコードが9になり、TotalVariances
に3が追加され、レコードが更新されます3.
であることはこれまでのところ、私は、このようになります更新クエリを使用して、カウント合計アイテムと分散の合計数の両方のために作る表クエリを使用して試してみた:
UPDATE tblMonthlyData
SET TotalItems = TotalItems + tblTempTotalItems.CountOfItems,
TotalVariances = TotalVariances + tblTempTotalVariances.CountOfVariances
WHERE Format$([ReportMonth],"mmm")=Format$(Now(),"mmm");
私はしました同様の方法でselectクエリを使用してレコードと分散をカウントし(一時テーブルを作成せずに)、それらに基づいて更新クエリを実行しました。指定されたテンポラリテーブルまたは選択クエリから値を取得するのではなく、更新クエリが実行されたときに、両方の方法でCountOfItems
およびCountOfVariances
パラメータのアクセスプロンプトが表示されます。
これは単純な操作(レコードと分散のカウントをクエリし、別のテーブルの適切な月次レコードに追加する)のように思えますが、それはどのように作成するのか分かりません作業。助けてくれてありがとう!
データベースを正規化すると、項目や分散の計算が容易になります。このコメントの最初の3つの言葉を理解していない場合は、「Mere Mortalsのためのデータベース設計」という本についてよく聞きました。 –
データベースの正規化とその形式について読んだことがあります。私は間違いなく私の小さなプロジェクトを作るときに私の最初のパスで設定されたものを正常化させるのに苦労します。 – UnseenSpecter