クエリで集計したデータを違うテーブルに掃き出す③コードの解説

Pocket

前回おもむろにコードを羅列しましたが、その解説をします。

一つ重要な点は、ADOを使ってデータを操作する場合テーブルのデータを操作する
ことができるが、クエリのデータは操作できないということです。

つまり、今回の例ですと、商品CD商品名はクエリのすべてのデータにあります。
クエリの集計したデータを上から回すのではなくて、それであれば商品テーブルを
基準にルーティンを回します。

2803181

ですので、
rs.Open “商品”, cnn, adOpenKeyset, adLockOptimistic
で商品テーブルを開いています。

そして商品テーブルの一番上から下までルーティンを回します。
rs.MoveFirst
Do Until rs.EOF

rs.MoveNext
Loop

商品テーブルの上から下までデータを動かす間に、売上集計抽出テーブルにデータを追加
していきます。
rs1.AddNew
rs1!商品CD = rs!商品CD
rs1!商品名 = DLookup(“商品名”, “売上集計”, “商品CD='” & rs!商品CD & “‘”)
rs1!数量 = DLookup(“数量の合計”, “売上集計”, “商品CD='” & rs!商品CD & “‘”)
rs1!単価 = DLookup(“単価”, “売上集計”, “商品CD='” & rs!商品CD & “‘”)
rs1!金額 = DLookup(“売上金額”, “売上集計”, “商品CD='” & rs!商品CD & “‘”)
rs1.Update
入れるデータはDLOOKUP関数を使います。
rs!商品CDはルーティンが一回回る毎に毎回変わります。
一回目はA,二回目はBという具合に。商品テーブルの上から順番です。
その商品CDに該当するデータを売上集計クエリから参照して、テーブルにデータを追加します。

この仕組みでクエリのデータをテーブルに移すことができます。
ADOはテーブルは操作できてもクエリは操作できません。ですので何かルーティンの基準となる
テーブルのデータが必要になります。

=============================================
昨日は娘の小学校の卒業式。とてもいい卒業式でしたし、みんなきびきびした動きで
一生懸命練習したんだなとよくわかりました。何度も泣きそうになりました。
長男のときは確実に泣きそうな気がします。もうそれも2年後です。
時が経つのは早過ぎです。

本日も最後までお読み頂きありがとうございます。