Hallo in die Runde!
Ich habe das folgende Problem, bei dem ich nicht weiterweiß.
In
einem Formular in geteilter Ansicht
gibt es ein gebundenes Textfeld
"Ende"
und ein ungebundenes Textfeld
"txtEnde"
. Die Spalte
"ende"
in
der Datenbank ist vom Typ
"datetime"
. Da das Ende-Datum nur minutengenau angezeigt werden soll,
verstecke ich das gebundene Feld
"ende"
und zeige in
"txtEnde"
einen gekürzten Datums-
String
:
Private
Sub
Form_Current()
If
Not
IsNull(
Me
!Ende)
Then
Me
!txtEnde = Mid(
CStr
(
Me
!Ende), 1, 16)
Else
Me
!txtEnde =
""
Debug.Print
"txtEnde: "
& txtEnde.Value
End
Sub
Problem: txtEnde zeigt beim Blättern durch die Datensätze einen falschen Wert an, nämlich jeweils den
aus der vorherigen Zeile. Die Ausgabe vom debug.print zeigt hingegen den richtigen Wert! Wenn ich
das Formular minimiere und wiederherstelle, zeigt plötzlich auch das Formular den richtigen Wert.
Der folgende Code funktioniert also (notdürftig):
Private
Sub
Form_Current()
If
Not
IsNull(
Me
!Ende)
Then
Me
!txtEnde = Mid(
CStr
(
Me
!Ende), 1, 16)
Else
Me
!txtEnde =
""
DoCmd.SelectObject acForm,
"dafe"
DoCmd.Minimize
DoCmd.SelectObject acForm,
"dafe"
DoCmd.restore
End
Sub
Müßte nicht eigentlich
"Repaint"
das tun, was ich möchte?
Kann ich das Problem anders lösen, ohne Minimize/restore, denn das verursacht häßliches Flackern?
Viele Grüße