PDA

Vollständige Version anzeigen : Farbige Wochentage im Formular


UStolze
05.12.2000, 17:14
Hallo,
ich kämpfe mit folgendem Problem:
Ein Formular enthält einen Datumswert (mm.jjjj) sowie 31 Felder, in denen für jeden Tag eines Monats Werte eingegeben werden können (Feld 1= 1. Tag d.Monats, Feld 2=2.TdM usw).
Abhängig vom eingegebenen Monat sollen die Felder an Samstagen und Sonntagen farbig gekennzeichnet werden. Hat jemand hierzu eine Idee? Wäre für Hilfe echt dankbar.

KHS
05.12.2000, 18:56
Hey,

schau mal in der Online-Hilfe unter 'Weekday-Funktion'.
Ich stell' mir das etwa so vor:
Code 'Beim Anzeigen':

If Me!DeinFeld1 = Weekday(SieheHilfe) Then
Me!DeinFeld1.Backcolor = 255 'Rot
Else
Me!DeinFeld1.Backcolor = 16777215 'Weiss
End If

If Me!DeinFeld2 = Weekday(SieheHilfe) Then
Me!DeinFeld2.Backcolor = 255 'Rot
Else
Me!DeinFeld2.Backcolor = 16777215 'Weiss
End If
...

Der Haken ist, daß du dieses Spielchen 31mal (für jedes Feld) definieren mußt!

Wenn dein Form kein Endlosform ist, dürft's keine Probleme geben.

Gruß KH

Mike
06.12.2000, 10:28
Hallo Uwe,
so ähnlich habe ich das schon mal gelöst:
Sub Test()
Dim intTag As Byte, strWoTag As String * 2, bytFTageProMonat As Byte
bytFTageProMonat = TageProMonat(DateSerial(Me!comJahr, Me!lstMonat, 1))

For intTag = 1 To bytFTageProMonat
strWoTag = Left(strWochentag(WeekDay(DateSerial(Me!Jahr, Me!Monat, intTag))), 2)
If strWoTag = "Sa" Or strWoTag = "So" Then
Me("DeinFeld" & intTag).ForeColor = 255 'Rot
Else
Me("DeinFeld" & intTag).ForeColor = 0 'schwarz
End If
Next
End Sub

Function TageProMonat(datDate As Date) As Integer
TageProMonat = DateSerial(Year(datDate), Month(datDate) + 1, 1) - DateSerial(Year(datDate), Month(datDate), 1)
End Function

Public Function strWochentag(datDatum As Date) As String
' Beschreibung: Ermittelt den Wochentag (Sonntag, Montag...) aus einem Datum
Select Case WeekDay(datDatum)
Case 1:
strWochentag = "Sonntag"
Case 2:
strWochentag = "Montag"
Case 3:
strWochentag = "Dienstag"
Case 4:
strWochentag = "Mittwoch"
Case 5:
strWochentag = "Donnerstag"
Case 6:
strWochentag = "Freitag"
Case 7:
strWochentag = "Samstag"
End Select
End FunctionMike