[Gelöst] Einfügen von Zeilen in Subform: Update-Probleme

29. August 2007 12:09

In einer Subform füge ich über einen Lookup (programmiert auf Tabellenfeldebene) mehrere Zeilen hinzu.
Diese neuen Zeilen werden ohne mein Zutun aber nicht sichtbar.

1. Möglichkeit: Ich wechsle den Datensatz in der Mainform und kehre zu meinem Ursprungsdatensatz zurück. Leider weiß meine Mainform nicht, dass auf Tabellenebene der Subform etwas passiert ist ...

2. Möglichkeit: Das gute alte CurrForm.UPDATE. Problem: Wo soll das hin? Da das Einfügen der Zeilen auf Tabellenebene passiert, weiß meine Subform nichts davon. Also habe ich den UPDATE-Befehl in den OnActivateForm-Trigger gelegt. Doch das allein reicht nicht!
Erst durch ein FIND wie hier
Code:
 ---- OnActiveForm --------
IF FIND('+') THEN
  CurrForm.UPDATE(FALSE);

geht es.

Mit UPDATE(TRUE) könnte ich gar nicht mehr die Form öffnen, ohne sofort eine Meldung "Möchten Sie den Datensatz umbenennen?" mit nein quittieren zu müssen.
Ohne das FIND (egal mit welchem Parametern, Hauptsache FIND!) tauchen meine neuen Datensätze in der Form nicht auf.

Mein obiger Code sorgt tatsächlich dafür, dass mir nun brav alle Datensätze angezeigt werden - ABER:
Bei dem Datensatz, auf dem der Cursor nach FIND('+') landet, wird das Feld PLZ geleert. Ich muss sofort Escape drücken, damit nicht beim Verlassen des Datensätzes wieder die Frage nach der Umbenennung kommt.

Wie komme ich aus diesem Dilemma? Wie wird die Form geupdatet, ohne das Feld im Datensatz zu leeren?
Zuletzt geändert von Natalie am 30. August 2007 11:50, insgesamt 1-mal geändert.

30. August 2007 11:49

Ich habs (scheinbar, das dachte ich bei dieser Aufgabe nämlich schon oft) gelöst:

Den Code im Trigger Tabellenfeld - OnLookup nach Trigger Formfeld - OnLookup kopieren und ergänzen:
Code:
---- Formfeld - OnLookup ---------
MeineLookupfunktion;
IF NOT FIND('<=>') THEN;
CurrForm.UPDATE(FALSE);


Den Code aus OnActivateForm habe ich gelöscht.