Seite 1 von 1

BASE: Formular, "Ist modifiziert" prüfen bei Fokusverlust

Verfasst: So, 09.09.2012 16:56
von juetho
In meinem Base-Formular habe ich ein maskiertes Feld, für das ich die Eingabe prüfen möchte. Diese Prüfung ist natürlich nur nötig, wenn der Anwender den Feldinhalt geändert hat. Das Ereignis Text modifiziert ist dafür nicht geeignet, weil es während der Eingabe gefeuert wird; und zu dieser Zeit kann der Inhalt noch nicht korrekt sein. Das Ereignis Modifiziert wäre das richtige, aber das gibt es bei einem maskierten Feld nicht. Deshalb meine Frage:

Enthält das Objekt oEvent beim Fokusverlust Informationen darüber, ob sich der zugrundeliegende Inhalt geändert hat? Oder gibt es einen anderen Weg?

Danke für Tipps! Jürgen



Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst

Re: BASE: Formular, "Ist modifiziert" prüfen bei Fokusverlus

Verfasst: So, 21.10.2012 14:23
von juetho
Teillösung: Bei einem Feld, das an eine Datenquelle (Tabelle) gebunden ist, passt das Ereignis "Vor dem Aktualisieren". Damit können der alte und der neue Feldinhalt geprüft und verglichen werden:

Code: Alles auswählen

Sub dateModified(oEvent as Object)
  fld = oEvent.Source
  alt = fld.BoundField.string
  neu = fld.Text
  msgBox("alt: " & alt & chr(13) & "neu: " & neu )
End Sub
Welche der Eigenschaften (Text, String, CurrentValue, Date usw.) geprüft und verglichen werden müssen, hängt wesentlich vom Datentyp ab. Ich habe für ein Date-Feld viel mit xray und Basic probiert, bis die Werte ohne Laufzeit-Exception angezeigt werden konnten.

Hinweis: Zuerst wird das Ereignis "Fokusverlust" behandelt, erst danach "Vor dem Aktualisieren". Trotzdem kann man beim Fokusverlust nur noch auf den neuen Wert zugreifen. Jürgen