Lembit Soobik
lembit.dbamail at t-online.de
Mon Jun 18 07:30:36 CDT 2007
Now, what I have made out of it is here: - I did not like the year 2000 as default, so I changed it to 1004 to be distinguishable from actual birthay in 2000. - I added a separate field for birth year - the birth year field is placed over the birth year of the birthday field, so in case no year is given, the year is not shown. - when a year is entered in either field, it is inserted int both fields, so whichever field has the focus, the display is the same if a year was given. for information, here is the code: '=============Begin Code Private Sub txtGeburtsjahr_AfterUpdate() On Error GoTo Error_txtGeburtsjahr_AfterUpdate If Nz(Me.txtGeburtsjahr, 0) < 1004 Then Me.txtGeburtstag = Day(Me.txtGeburtstag) _ & "." & Month(Me.txtGeburtstag) & "." & 1004 Me.txtGeburtsjahr = "" Else Me.txtGeburtstag = Day(Me.txtGeburtstag) _ & "." & Month(Me.txtGeburtstag) & "." & Me.Geburtsjahr End If Exit_txtGeburtsjahr_AfterUpdate: Exit Sub Error_txtGeburtsjahr_AfterUpdate: MsgBox "Das Datum ist ungültig: " & Day(Me.txtGeburtstag) _ & "." & Month(Me.txtGeburtstag) & "." & Me.Geburtsjahr Me.Geburtsjahr = "" Resume Exit_txtGeburtsjahr_AfterUpdate End Sub '================================ Private Sub txtGeburtstag_AfterUpdate() If IsNull(Me.txtGeburtstag) = True Then Me.txtGeburtsjahr = "" ElseIf Year(Me.txtGeburtstag) <= 1004 Then Me.txtGeburtsjahr = "" Me.txtGeburtstag = Day(Me.txtGeburtstag) _ & "." & Month(Me.txtGeburtstag) & "." & 1004 End If Form_Current End Sub '----------------------------------------------------------- Private Sub txtGeburtstag_Click() If Me.txtGeburtstag > #1/1/1004# Then Else Me.txtGeburtstag.SelStart = 0 Me.txtGeburtstag.SelLength = 0 End If End Sub '----------------------------------------------------------- Private Sub txtGeburtstag_Enter() Me.txtGeburtstag.SelStart = 0 Me.txtGeburtstag.SelLength = 0 End Sub '----------------------------------------------------------- Private Sub Form_Current() If Me.txtGeburtstag >= #1/1/1004# Then ' Set Default Format Me.txtGeburtstag.InputMask = "" If Me.txtGeburtstag > #1/1/1900# Then Me.txtGeburtsjahr = Format(Me.txtGeburtstag, "yyyy") Me.txtGeburtstag.Format = "dd.mm.yyyy" Else End If Else ' Set Custom Mask With Preset Year 1004 Me.txtGeburtstag.Format = "" Me.txtGeburtstag.InputMask = "99.99.\1\0\0\4;0;_" End If If Me.NewRecord Then Me.txtGeburtstag.SetFocus End If ' Me.NewRecord End Sub '================================ '=============End Code Lembit