|
▼hatena さん
度々誠に申し訳ありません。機能追加をすることにしました。
下記のコードに加えて、「出席日」だけでなく、「振替出席日」にも色変更を加えようと思います。いろいろやってみましたが、複数条件がある場合、最初の条件分岐のところではelseifにしないといけないと思い、
Elseif RS.FindFirst "出席日=#" & .Tag & "#")(1) & "#"
とすると構文エラーになります。
RS.FindFirst "振替出席日=#" & .Tag & "#")(1) & "#"
をあちこちの場所に入れ替えて試してみましたが、上手く行きません。
どこを変えたらよいでしょうか?
「振替出席日」のフィールドは「出席日」と同じ「出欠」テーブルの中にあります。
後、フォームの詳細欄に.onclickで日付入力をしたいのですが、フィールドが日付型でない場合には、エラー表示をしようと思い、フィールドの型を取得する方法をあちこち探してみましたが、わかりませんでした。
ご教示よろしくお願いいたします。
>Private Sub SetColor(y As Integer, m As Integer)
>Dim i As Integer, j As Integer
>Dim db As DAO.Database
>Dim RS As DAO.Recordset
>Dim strSQL As String
> strSQL = "SELECT * FROM 出欠 " & _
> "WHERE 生徒番号=" & Me.生徒番号 & " AND " & _
> "出席日 Between #" & DateSerial(y, m + 0, 1) & _
> "# AND #" & DateSerial(y, m + 2, 0) & "#"
> Set db = CurrentDb()
> Set RS = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
>
> For j = -3 To 2
> For i = 1 To 42
> With Me(Chr(Asc("d") + j) & i)
> If .OnClick= "" Then
> .BackColor = vbWhite
Elseif RS.FindFirst "出席日=#" & .Tag & "#")(1) & "#" ←
> If RS.NoMatch Then
> If WeekdayName(Weekday(.Tag)) = Me.曜日 Then
> .BackColor = vbMagenta
> Else
> .BackColor = vbWhite
> End If
> ElseIf RS!出欠 Then
> .BackColor = vbBlue
> Else
> .BackColor = vbRed
> End If
> End If
> End With
> Next
> Next
> RS.Close
>End Sub
|
|