Microsoft Access 掲示板

レポート作成、定価の表示 / 6

9 コメント
views
4 フォロー
6
hiroton 2020/11/05 (木) 08:27:04 修正 b95b2@f966d >> 4

これすごいですねぇ。試してみたら確かにBグループのフッターのformatイベントでAグループのフッターの小計が取れました。Aグループのフッターのformatイベント入る前なのでどうかと思ってたんですが計算自体は終わってる上にちゃんと自分のグループの数値が取れるんですね

テストデータ

IDABn
1A1
2A10
3B1
4B10
5C100
6D1000
7D10000
8E1
9E10

レポートのグループ化の設定
グループ化:A、フッターにテキストボックス[A小計](=Sum([n]))
└グループ化:B、フッターにテキストボックス[B小計](=Sum([n]))

テストコード

Private Sub Aグループフッター_Format(Cancel As Integer, FormatCount As Integer)
    Debug.Print "AFooter", Me!A小計
End Sub

Private Sub Bグループフッター_Format(Cancel As Integer, FormatCount As Integer)
    Debug.Print Me!ID, Me!A小計, Me!B小計
End Sub

出力結果

 1             11            11 
AFooter        11 
 3             11111         11 
 5             11111         100 
 6             11111         11000 
AFooter        11111 
 8             11            11 
AFooter        11 

※未出力のフッターの集計がきちんととれてる(Me!A小計)
※レコードの参照はグループの最後のレコードっぽい(並び順指定してなかったらIDはなぜか降順に・・・)

通報 ...
  • 7
    hatena 2020/11/05 (木) 09:54:12 修正 >> 6

    グループヘッダーに集計用テキストボックス=Sum()=Count()を置いた場合でもちゃんとグループ内の集計が取得できますので、formatイベントに関係なくグループ全体の集計をしているみたいですね。

    ちなみに詳細セクションに集計関数を置くと全体の修正をするようです。一番目のレコードでも全体集計になります。

  • 8
    ポンタ 2020/11/05 (木) 16:45:35 0029a@1c915 >> 6

    こちらの方法で1回うまくいったと思っていたのですが、「nullの値が不正です」との警告が出て、固まるようになりました。なにか間違っているのでしょうか…

  • 9
    ポンタ 2020/11/05 (木) 20:23:38 0029a@1c915 >> 6

    ケアレスミスしてました…うまくいきました。

    Private Sub グループフッター3_Format(Cancel As Integer, FormatCount As Integer)
    
    
    If IsNull(Me.グループA) Or IsNull(Me.グループB) Then
    Else
    Cancel = (Me.グループA = Me.グループB)
    End If
    End Sub