Microsoft Access 掲示板

カレントレコードがありません。

7 コメント
views
4 フォロー

お世話になります。

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

a
作成: 2020/06/29 (月) 22:53:57
通報 ...
1
cerophan 2020/06/30 (火) 08:00:12 f1ed8@4625c

条件付き書式ではできませんでしょうか?的外れであれば申し訳ありません。

2

cerophanさんが回答されてるように条件付き書式でやるのが簡単だと思います。

連結テキストボックスが、年、月、日 と3つあるのだとすると、

「年」テキストボックスは下記のよう設定します。

画像1

月、日 も同様に設定すればOKです。

3

ありがとうございます!
条件付き書式とても便利ですね!やりたいようにできました。
年、月、日をそれぞれ指定してその連結テキストボックスの書式をかえることができましたが、
同じレコードにある連結テキストボックスの項目もすべて同じ条件で同じ書式に変更したいのですが、
たとえば「内容」などの連結テキストボックスも条件付き書式でいけますか?
「内容」について、式でif(年=format(date()"yyyy"))といれてみたのですが
これだとだめですか?
よろしくお願い致します。

4

条件が不明確ですか、年 月 日 を合成した日付が今日の日付と同じならば背景色を赤にする、ということなら、

他のテキストボックスをすべて選択した状態で条件付き書式を下記のように設定すればいいでしょう。

画像1

式は、

DateSerial([年],[月],[日])=Date()
5

ありがとうございます。
テキストボックスを2つ以上選択すると、条件付き書式が指定できないようですが、やり方がありますか?
また、年月日のそれぞれどれかが1つでも今日の年月日とマッチするようなら1レコード分の書式を変更したいです。
よろしくお願い致します。😣

6
hatena 2020/07/01 (水) 16:17:00 修正

テキストボックスを2つ以上選択すると、条件付き書式が指定できないようですが、やり方がありますか?

デザインビューでShiftキーを押しながら該当テキストボックスをクリックすると複数選択できます。
そのうえで、リボンの「書式」-「条件付き書式」をクリックすればできると思います。

また、年月日のそれぞれどれかが1つでも今日の年月日とマッチするようなら1レコード分の書式を変更したいです。

今日(2020/07/01)の場合、
「年」が「2020」だったら、「月」が 「03」「日」が「05」でも変更するということですか。
「日」が「01」だったら、「年」が「2019」「月」が「05」でも変更するということですか。

ならば、式を下記のようにすればいいでしょう。

[年]=Year(Date()) OR [月]=Month(Date()) OR [日]=Day(Date())

上記は 年、月、日 フィールドが数値型の場合です。テキスト型で月と日か2桁表示なら、

[年]=Format(Date(),"yyyy") OR [月]=Format(Date(),"mm") OR [日]=Format(Date(),"dd")
7

ありがごうございます!
複数選択して右クリックの条件付き書式で探してました。
複数選択してリボンからいけばできました!

式についても教えていただいた通りに記入してやりたいようにできました。
大変勉強になりました。
質問のクローズはどこでするのかわからないのでこちらで解決とさせていただきます!😄