DataReportでグループ化一覧表示した時、一覧表示項目のRptTextBoxの背景色を変更するには?


トッティ10  2007-08-04 21:46:39  No: 99291

初めまして。トッティ10と申します。
WindowsXpにおきましてVisualBasic6.0にて
開発を行っております。

  現在、社員毎の商品毎の販売数を下記のように
一覧表示するDataReportを作成しております。
--------------------
  社員ID  社員名

    商品名1  販売個数
    商品名2  販売個数
・・・
    商品名10  販売個数
--------------------
"SHAPE {...} compute ...by..." を使用し、
社員IDでグループ化し、商品毎の販売個数の行を
動的に表示させています。販売個数が5個未満の時に
販売個数を表示しているRptTextBoxの背景色を
赤色に変更しようと思い、以下のようにデザイン、
ソースを組みました。

====================
【デザイン】
--- グループヘッダー ---
  textPid  textName
--- 詳細(section1) ---
    textPname  textCount
--- グループフッター ---
    (特になし)

・textPid
  DataField:id
・textName
  DataField:name
・textPname
  DataField:productname
  DataMember:dbrecord
・textCount
  DataField:count
  DataMember:dbrecord

【ソース】
--- DataReportを表示するためのフォーム側 ---
Private Sub Command5_Click()
    Dim sql As String
    Dim cndb As Object
    Dim rsdb As Object

    Set cndb = CreateObject("ADODB.Connection")
    Set rsdb = CreateObject("ADODB.Recordset")
    cndb.Open "Provider=MSDataShape;" & _
        "Data Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:product.mdb"

    sql = "shape {SELECT id, name, productname, count " & _
         "FROM product_record INNER JOIN (personal INNER JOIN product_result ON " & _
         "personal.id = product_result.p_id) ON " & _
         "(product_record.product_id = product_result.product_id) " & _
         "} as dbrecord " & _
         "compute dbrecord by id, name"
    rsdb.Open strsql, conndb
    Set Report1.DataSource = rsdb
    Report1.Show
End Sub

--- DataReport側 ---
Private WithEvents SetFormat As StdDataFormat

Private Sub DataReport_Initialize()
    Set SetFormat = New StdDataFormat
    SetFormat.Type = fmtGeneral
    Set Me.Sections("section1").Controls("textCount").DataFormat = SetFormat
End Sub

Private Sub SetFormat_Format(ByVal DataValue As StdFormat.StdDataValue)
    If DataValue.Value < 5 Then
      DataValue.TargetObject.BackColor = vbRed    ←×
    End If
End Sub
====================
  一覧表示は正常に行われているのですが、上記の×の行の
DataValueオブジェクトのTargetObjectが"nothing"のため変更を
行うことができません。何か方法自体に間違いがありますでしょうか?
お気づきの点または解決方法をご存知の方はご教授お願い致します。


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

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






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