MSHFlexGrid を使用して

解決


Sarra  2006-07-21 01:21:49  No: 96062

いつもお世話なっております。
今回はMSHFlexGrid を使用して、指定したセルへの色塗りについて
質問させていただきます。
SQLサーバからデータを取り、MSHFlexGridに貼り付けた後、
第5列目の一行から終わりまでのデータと比べて、30日間が経った場合、
その行の色を赤にしたいのですが、その第5列目の一行から終わりまでのデータの設定仕方について、いわゆるIf mydate - x > 30 Then  のxの設定について、どなたが教えて頂けませんか。
宜しくお願いいたします。

ソースは以下となります。
***************************************************************
   Dim mydate
        mydate = Format(Now, "yyyymmdd")
        Dim i As Integer
        Dim j As Integer
    For i = myGrid1.FixedCols To myGrid1.Rows - myGrid1.FixedRows
        For j = myGrid1.FixedCols To myGrid1.Cols - myGrid1.FixedRows
            myGrid1.Row = i
            myGrid1.Col = j
        If mydate - x > 30 Then
            myGrid1.CellBackColor = QBColor(12)
'                myGrid1.Enabled = False
'                myGrid1.Enabled = True
'            Else
'                色を非表示
'                myGrid1.CellBackColor = 0
        End If
        Next j
    Next i


tuyuake  2006-07-21 19:11:36  No: 96063

以下では如何ですか?
なお myGrid1  は With myGrid1 を使用した方が良いのでは。

x = myGrid1.TextMatrix(i, j)
xの宣言が有りませんね。

但し日時の計算をする為には
一部、下記該当箇所を変更して

Dim x_moji As String                  <=== 追加
mydate = Format(Now, "yyyy/mm/dd")    <=== 修正

各行の第5列目のセルの値の取得
x_moji = Format(myGrid1.TextMatrix(i, 4),"yyyy/mm/dd")

If Datediff("d",mydate,x_moji) > 30 Then

.....の方が良いと思われますが。


Sarra  2006-07-21 23:11:45  No: 96064

tuyuakeさん、ご返答ありがとうございます。
myGrid1.TextMatrixでxの設定ができました。
また、日付の計算について、いい勉強になりました。
どうもありがとうございました。
助かりました。


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

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






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