Änderungen in der Struktur werden nicht gespeichert
Ein Knoten, der in der Formularansicht umbenannt, verschoben, hinzugefügt oder gelöscht wurde, oder eine bearbeitete
Zelle einer Strukturliste erscheint im Steuerelement geändert, aber die Tabelle ist unverändert, und nach Requery
oder nach erneutem Öffnen des Formulars ist die Änderung verschwunden.
Umgebung
Alle Versionen von WklTreeView und WklTreeList.
Ursache
Einer dieser Fälle liegt vor:
AutoSaveist False: Änderungen wirken sich nur auf die Anzeige aus. Eine Zelle ist dann bearbeitbar, gleich was die Quelle zulässt; der eingegebene Wert bleibt auf dem Bildschirm, bisRequerydie Quelle neu liest.ValidateCellkommt, bevor der Wert übernommen wird (mitCancel),AfterCellUpdatedanach (ohne). Eine Anwendung, die die Änderung selbst schreibt (zum Beispiel über eine gespeicherte Prozedur), tut das inValidateCellund bricht ab, wenn das Schreiben scheitert, dennAfterCellUpdatekann die Anzeige nicht mehr rückgängig machen; Werte, die das Schreiben an anderer Stelle ändert (eine Zeilenversion, ein Zeitstempel), erscheinen nachRequery.- Die Struktur wurde aus einem
Recordsetoder mitLoadFromFile,LoadFromStream,LoadFromStringoderAsJSONohneRecordSourcegeladen: Es gibt keine Datenherkunft, in die geschrieben werden könnte. BeforeUpdate(oderAfterLabelEdit,NodeDrop,ValidateCell) hatCancel = Truegesetzt; der gesamte Vorgang wurde zurückgenommen.- Access hat das Schreiben abgelehnt (Gültigkeitsregel, Pflichtfeld, gesperrte oder schreibgeschützte Quelle wie eine nicht aktualisierbare Abfrage). Die Struktur bleibt dann unverändert, und
DataErrormeldet den Grund.
Lösung
- Prüfen Sie
AutoSave(Eigenschaftenblatt, Registerkarte Andere). - Binden Sie mit
RecordSourcestatt mitRecordset, wenn Änderungen gespeichert werden müssen. Behandeln Sie
DataError, um die Meldung von Access zu sehen:Private Sub Tree1_DataError(ByVal DataErr As Long, ByVal Description As String, Response As Integer) Debug.Print DataErr, Description End Sub- Prüfen Sie, ob die Datenherkunft aktualisierbar ist: Öffnen Sie sie als Datenblatt und ändern Sie dasselbe Feld von Hand.
de/wiki/msaccess/comctl/troubleshooting/changes-not-saved.txt · Zuletzt geändert: von Wolfgang van der Stille