Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2013)
レポートの文字の色について
投稿日時: 18/06/26 20:23:40
投稿者: sasa

いつもお世話になっております。
sasaです。
大変申し訳ございませんが、又教えて頂けると助かります。
 
 
現在、テーブルで
 
資格マスタ
資格ID  資格名  文字カラー
オートNO テキスト 数値型
 
資格保有データ
社員NO 資格NO 取得日
数値型 数値型 日付時刻型
 
があります。
 
それぞれ資格IDと資格NOはリレーションシップでつながれています
 
これをレポート上の詳細に
社員NO 資格名 文字カラー
 
を乗せております。
 
その状態で、
レポートの詳細にイベントプロシージャで
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
 
If Me.文字カラー = 1 Then
 
 Me.資格名.ForeColor = RGB(0, 255, 0)
 
ElseIf Me.文字カラー = 2 Then
 
 Me.資格名.ForeColor = RGB(0, 255, 255)
 
End If
 
End Sub
 
と記載し、表示される資格名により色を変えようとしましたが、全くうまくいきません。
 
皆様の知恵をお貸しいただけると助かります。
 
よろしくお願いいたします。

回答
投稿日時: 18/06/27 09:29:36
投稿者: sk

引用:
表示される資格名により色を変えようとしましたが、全くうまくいきません

「全くうまくいかない」というのが、
具体的にどのような状況であるかを
明記されることをお奨めします。
 
・[資格名]の前景色がどのレコードにおいても
 既定の色のままである。
 
・一部のレコードの[資格名]の前景色が
 意図した通りの色にならない。
 
・上記以外。

投稿日時: 18/06/27 11:55:39
投稿者: sasa

sk様
ご回答ありがとうございます。
 
失礼いたしました。
 
うまくいかないのは、
・[資格名]の前景色が、一番最初のレコードで指定された文字カラーに全てなってしまう。
という事になります。
言葉が足りず、申し訳ございません。
 
何卒よろしくお願いします。
 
 

回答
投稿日時: 18/06/27 14:02:20
投稿者: sk

引用:
・[資格名]の前景色が、一番最初のレコードで指定された文字カラーに全てなってしまう。

ではまず、詳細セクションの Format イベントで実行している
イベントプロシージャが正常に実行されているかどうかご確認を。
 
引用:
If Me.文字カラー = 1 Then
  
 Me.資格名.ForeColor = RGB(0, 255, 0)
  
ElseIf Me.文字カラー = 2 Then
  
 Me.資格名.ForeColor = RGB(0, 255, 255)
  
End If

今のところ考えられるのは、上記の条件分岐において
Else パートが設けられていないことが原因である可能性です。
 
例えば 1 件目のレコードの Format イベントにおいて、
そのレコードの[文字カラー]の値が 1 だった場合は
[資格名]の ForeColor プロパティの値が 65280 に
設定されることになるわけですが、もし 2 件目以降の
全てのレコードの[文字カラー]の値が 1 でも 2 でもなければ
[資格名]の ForeColor プロパティの値はずっと 65280 のままです。
 
-----------------------------------------------------------------
 
If Me.文字カラー = 1 Then
   Me.資格名.ForeColor = RGB(0, 255, 0)
ElseIf Me.文字カラー = 2 Then
  Me.資格名.ForeColor = RGB(0, 255, 255)
Else
  Me.資格名.ForeColor = RGB(0, 0, 0)
End If
 
-----------------------------------------------------------------

投稿日時: 18/06/27 20:24:06
投稿者: sasa

sk様
出来ました!!
ありがとうございました。