お世話になります。
T70_スケジュールをソースにしたフォームがあります。
開いたときに、今日の年月日と合致してるレコードに色をつけたいと思っています。
下記のように作成してみたのですが、最後のレコードになるとカレントレコードがありません。という
エラーがでてしまいます。
どこをかえればいいですか?
また、これより簡単な方法がありますか?
よろしくお願い致します。
Private Sub Form_Open(Cancel As Integer)
Dim W_YY, W_MM, W_DD As String
W_YY = Format(Date, "yyyy")
W_MM = Format(Date, "mm")
W_DD = Format(Date, "dd")
Set db = CurrentDb()
Set rs = db.OpenRecordset("T70_スケジュール", dbOpenTable)
Do Until rs.EOF
If W_YY = Me![年] Then
Me.年.ForeColor = vbRed
Me.項目.ForeColor = vbRed
Me.内容.ForeColor = vbRed
End If
If W_MM = Me![月] Then
Me.月.ForeColor = vbRed
Me.項目.ForeColor = vbRed
Me.内容.ForeColor = vbRed
End If
If W_DD = Me![日] Then
Me.日.ForeColor = vbRed
Me.項目.ForeColor = vbRed
Me.内容.ForeColor = vbRed
End If
Me.Recordset.MoveNext
Loop
End Sub
条件付き書式ではできませんでしょうか?的外れであれば申し訳ありません。
cerophanさんが回答されてるように条件付き書式でやるのが簡単だと思います。
連結テキストボックスが、年、月、日 と3つあるのだとすると、
「年」テキストボックスは下記のよう設定します。
月、日 も同様に設定すればOKです。
ありがとうございます!
条件付き書式とても便利ですね!やりたいようにできました。
年、月、日をそれぞれ指定してその連結テキストボックスの書式をかえることができましたが、
同じレコードにある連結テキストボックスの項目もすべて同じ条件で同じ書式に変更したいのですが、
たとえば「内容」などの連結テキストボックスも条件付き書式でいけますか?
「内容」について、式でif(年=format(date()"yyyy"))といれてみたのですが
これだとだめですか?
よろしくお願い致します。
条件が不明確ですか、年 月 日 を合成した日付が今日の日付と同じならば背景色を赤にする、ということなら、
他のテキストボックスをすべて選択した状態で条件付き書式を下記のように設定すればいいでしょう。
式は、
ありがとうございます。
テキストボックスを2つ以上選択すると、条件付き書式が指定できないようですが、やり方がありますか?
また、年月日のそれぞれどれかが1つでも今日の年月日とマッチするようなら1レコード分の書式を変更したいです。
よろしくお願い致します。😣
デザインビューでShiftキーを押しながら該当テキストボックスをクリックすると複数選択できます。
そのうえで、リボンの「書式」-「条件付き書式」をクリックすればできると思います。
今日(2020/07/01)の場合、
「年」が「2020」だったら、「月」が 「03」「日」が「05」でも変更するということですか。
「日」が「01」だったら、「年」が「2019」「月」が「05」でも変更するということですか。
ならば、式を下記のようにすればいいでしょう。
上記は 年、月、日 フィールドが数値型の場合です。テキスト型で月と日か2桁表示なら、
ありがごうございます!
複数選択して右クリックの条件付き書式で探してました。
複数選択してリボンからいけばできました!
式についても教えていただいた通りに記入してやりたいようにできました。
大変勉強になりました。
質問のクローズはどこでするのかわからないのでこちらで解決とさせていただきます!😄