DataGridの合計について

解決


飴玉  2005-01-18 23:41:08  No: 119015

いつも参考にしております。

現在、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日の購入詳細はこの表示方法で何の問題も無いのですが、一日の購入数を
求めて、同じフォーム内にあるテキストボックスに表示したいのですが、
どうやって合計を求めれば良いのか解からずにいます。

宜しければご意見の程、宜しくお願い致します。


特攻隊長まるるう  2005-01-19 00:18:20  No: 119016

SQL文を使ってるならそれでも求められるし、
   SELECT 日付, SUM(購入量)AS 一日合計
   FROM Aテーブル 
   GROUP BY 日付

ADODB.Recordset を使ってるなら
   .Fields("日付").Value
が同じ
   .Fields("購入量").Value
を順に計算しても良いし…
…そのあたりの方法は過去ログで沢山引っ掛かります。
過去ログ検索『Recordset』とかでどうぞ。


飴玉  2005-01-19 01:08:21  No: 119017

特攻隊長まるるう様

返答ありがとうございます。

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の条件で得たデータの結果を合計したいと考えております。
この場合はどうすれば良いのでしょうか?

スイマセン、ご指摘通り過去ログを検索したのですが理解出来ませんでした。

ご指摘の程、宜しくお願い致します。


飴玉  2005-01-19 01:33:57  No: 119018

下記のように行ってみました。

    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

自信が無いのですが・・・思う通りの結果を得る事が出来たので『解決』とさせて
頂きます。
ありがとうございました。


特攻隊長まるるう  2005-01-19 02:10:14  No: 119019

基本はできてるね。
…ただ、これだと日付が複数の種類で入っていると
……どうなりました?w
色々テストしてみて下さい。


特攻隊長まるるう  2005-01-19 02:24:33  No: 119020

っつか出力先がテキストボックスって事は
どこかで日付が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リクエストあれば。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加