tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
MSFlexGrid で項目別の集計(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2007/07/15 19:27
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[グリッド関係][][]                                                  *
* キーワード:MSHFlexGrid,フレックスグリッド,科目別集計,小計合計,,                *
***********************************************************************************

元質問 No.2358 項目別の集計  投稿者:おーちゃん [2001/06/26(火)15:08分]

VBで、あるデータ表から項目別の集計が出せるようにしたいのです。
例)
   日付   品名   メーカー    購入個数   
   6月23日 ノート  じゃ○にか    50     
   6月23日 ノート   ○印良品    50     
   6月23日 鉛筆   じゃ○にか    150     
   6月23日 消しゴム じゃ○にか    10
     
   6月24日 ノート  じゃ○にか    250     
   6月24日 ノート   ○印良品    50     
   6月24日 鉛筆   じゃ○にか    150     
   6月24日 消しゴム じゃ○にか    10     
            ・
            ・
以上のような表で、品名を第一優先、メーカーを第二優先の順で、購入した個数をそれぞれ求めたいのですが、どのような関数で求められるのでしょうか?


------------------------------------------------------------------------------
No.2368 RE:項目別の集計  投稿者:ゆう(U) [2001/06/27(水)14:04分]
------------------------------------------------------------------------------

 実行結果の図(下記サンプルを一部改造しております)
 http://hanatyan.sakura.ne.jp/samplepic/vb6_346.htm


サンプル)
Private Sub Form_Load()
  With MSFlexGrid1
    .Redraw = False
    .Rows = 10
    .Cols = 4
    .FixedRows = 1
    .FixedCols = 0
    .Row = 0
    .Col = 0
    .RowSel = .Rows - 1
    .ColSel = .Cols - 1
    .Clip = "日付" & vbTab & "品名" & vbTab & "メーカー" & vbTab & "購入個数" & vbCr _
          & "6月23日" & vbTab & "ノート" & vbTab & "じゃ○にか" & vbTab & "10" & vbCr _
          & "6月23日" & vbTab & "ノート" & vbTab & "○印良品" & vbTab & "20" & vbCr _
          & "6月23日" & vbTab & "鉛筆" & vbTab & "じゃ○にか" & vbTab & "30" & vbCr _
          & "6月23日" & vbTab & "消しゴム" & vbTab & "じゃ○にか" & vbTab & "40" & vbCr _
          & "6月23日" & vbTab & "消しゴム" & vbTab & "○印良品" & vbTab & "50" & vbCr _
          & "6月24日" & vbTab & "ノート" & vbTab & "じゃ○にか" & vbTab & "60" & vbCr _
          & "6月24日" & vbTab & "ノート" & vbTab & "○印良品" & vbTab & "70" & vbCr _
          & "6月24日" & vbTab & "鉛筆" & vbTab & "じゃ○にか" & vbTab & "80" & vbCr _
          & "6月24日" & vbTab & "消しゴム" & vbTab & "○印良品" & vbTab & "90"
    .Row = .FixedRows
    .Col = .FixedCols
    .Redraw = True
  End With
End Sub
Private Sub Command1_Click()
  Dim strHinmei As String
  Dim strMaker As String
  Dim lngKosuu As Long
  Dim i As Long

  With MSFlexGrid1
    .Redraw = False
    .RowSel = .Row
    .Col = 1
    .ColSel = 2
    .Sort = flexSortStringAscending
    For i = .Rows - 1 To .FixedRows Step -1
      .TextMatrix(i, 0) = ""
      If strHinmei = .TextMatrix(i, 1) Then
        If strMaker = .TextMatrix(i, 2) Then
          lngKosuu = lngKosuu + CLng(.TextMatrix(i, 3))
          .TextMatrix(i, 3) = CStr(lngKosuu)
          .RemoveItem i + 1
        Else
          strMaker = .TextMatrix(i, 2)
          lngKosuu = CLng(.TextMatrix(i, 3))
        End If
      Else
        strHinmei = .TextMatrix(i, 1)
        strMaker = .TextMatrix(i, 2)
        lngKosuu = CLng(.TextMatrix(i, 3))
      End If
    Next
    .Row = .FixedRows
    .Col = .FixedCols
    .Redraw = True
  End With
End Sub



 [スレッド一覧へ] [親スレッドへ]