いつも参考にしております。
現在、ACCESSのテーブルからADOを用いて、VB6のDataGridに表示しております。
ACCESS
Aテーブル
日付 支店 品番 購入量
0117 a支店 0001 100
0117 b支店 0002 200
0117 c支店 0003 100
Bテーブル
品番 品名
0001 鉛筆
0002 消しゴム
0003 ノート
VBのDataGridにて表示
一日の売上フォーム(全店合計)
日付 品番 品名 購入数
0117 0001 鉛筆 100
0117 0002 消しゴム 200
0117 0003 ノート 100
1日の購入詳細はこの表示方法で何の問題も無いのですが、一日の購入数を
求めて、同じフォーム内にあるテキストボックスに表示したいのですが、
どうやって合計を求めれば良いのか解からずにいます。
宜しければご意見の程、宜しくお願い致します。
SQL文を使ってるならそれでも求められるし、
SELECT 日付, SUM(購入量)AS 一日合計
FROM Aテーブル
GROUP BY 日付
ADODB.Recordset を使ってるなら
.Fields("日付").Value
が同じ
.Fields("購入量").Value
を順に計算しても良いし…
…そのあたりの方法は過去ログで沢山引っ掛かります。
過去ログ検索『Recordset』とかでどうぞ。
特攻隊長まるるう様
返答ありがとうございます。
SQLを使っているのですが、例題だと
dim strTEST as string
strTEST="select Atable.hiduke, Btable.hinmei, Atable.suuryou " & _
"from Btable " & _
"inner join Atable on Btable.hinban = Atable.hinban"
dim recTEST as ADODB.Recordset
set recTEST = new ADODB.Recordset
With recTEST
.CursorLocation = adUseClient
.Open strTEST, cnn, adOpenStatic, adLockPessimistic
End With
Set dgdTESTList.DataSource = recTEST
どうしても、strTESTの条件で得たデータの結果を合計したいと考えております。
この場合はどうすれば良いのでしょうか?
スイマセン、ご指摘通り過去ログを検索したのですが理解出来ませんでした。
ご指摘の程、宜しくお願い致します。
下記のように行ってみました。
Dim strAA As String
Dim intBB As Integer
Dim intCC, intDD As Integer
intCC = recTEST.RecordCount
For intDD = 1 To intCC
Do Until recTEST.EOF
strAA = recTEST.Fields("suuryou")
intBB = strAA + intBB
intDD = intDD + 1
recTEST.MoveNext
Loop
Next
Text1.Text = intBB
自信が無いのですが・・・思う通りの結果を得る事が出来たので『解決』とさせて
頂きます。
ありがとうございました。
基本はできてるね。
…ただ、これだと日付が複数の種類で入っていると
……どうなりました?w
色々テストしてみて下さい。
っつか出力先がテキストボックスって事は
どこかで日付が1つに絞られる処理があるのかも。
今後の勉強のためのSQL文として複数日付対応版
SELECT 日付, '一日合計', NULL, SUM(購入量)
FROM Bテーブル INNER JOIN Aテーブル ON Aテーブル.品番 = Bテーブル.品番
GROUP BY 日付
と
SELECT 日付, Bテーブル.品番, 品名, 購入量
FROM Bテーブル INNER JOIN Aテーブル ON Aテーブル.品番 = Bテーブル.品番
UNION ALL
SELECT 日付, '一日合計', NULL, SUM(購入量)
FROM Bテーブル INNER JOIN Aテーブル ON Aテーブル.品番 = Bテーブル.品番
GROUP BY 日付
を試してみると面白いかも(?)
ADODB.Recordset をゴリゴリ調べていく方のは
…まぁ、面倒臭いのでwリクエストあれば。
ツイート | ![]() |