Color scheme: Riviera
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » troubleshooting » Ein Datendienst lehnt eine Änderung ab

Ein Datendienst lehnt eine Änderung ab

Das Bearbeiten einer Zelle oder das Speichern eines neuen Datensatzes in einem WklGrid, das an eine über ODBC verknüpfte Tabelle gebunden ist (zum Beispiel an einen Wkl-OData-Dienst), scheitert: Die Zeile erhält am linken Rand einen roten Balken, DataError wird ausgelöst, und aus VBA löst CellValue einen Fehler aus wie

Die Änderung (Zellwert) am Knoten 1 konnte nicht in "tblOData" gespeichert werden:
[Wkl][OData]Der Dienst hat mit 422 geantwortet: Der Vorgang wurde von der Datenbank abgelehnt.
(ODBC: Aktualisierung in einer verknüpften Tabelle 'tblOData' fehlgeschlagen.)

Umgebung

WKL Forms Object Library ab 1.15; jede über ODBC verknüpfte Tabelle.

Ursache

Das Raster schreibt über Access (DAO), und Access gibt die Änderung an den ODBC-Treiber weiter, der sie an den Dienst sendet. Der Dienst – oder die Datenbank dahinter – hat sie abgelehnt: eine Check-Einschränkung, eine fehlende Berechtigung (403), ein Wert, den der Dienst nicht annimmt (422). Die Meldung nennt zuerst den Grund des Treibers und des Dienstes und in Klammern die allgemeine Meldung von Access; die Änderung wird nicht gespeichert, und die Werte bleiben in der Zeile stehen.

Lösung

  1. Lesen Sie den ersten Teil der Meldung: Er ist der Grund des Dienstes. Ein 422 mit „von der Datenbank abgelehnt“ weist auf eine Regel der Datenbank hin (Check-Einschränkung, Fremdschlüssel, Pflichtspalte), ein 403 auf die Rechte des Aufrufers.
  2. Korrigieren Sie den Wert in der Zeile, oder verwerfen Sie ihn mit Esc; in einer neuen Zeile verwerfen Esc oder Entf den Datensatz.
  3. Um den Grund in einer eigenen Meldung anzuzeigen, behandeln Sie DataError und setzen Sie Response auf acDataErrContinue.
  4. Um die Regel zu prüfen, bevor der Dienst es tut, prüfen Sie in BeforeUpdate des Rasters oder legen Sie für die Spalte eine Gültigkeitsregel fest (Zelleingaben prüfen).
de/wiki/msaccess/comctl/troubleshooting/data-service-refuses-change.txt · Last modified: by Wolfgang van der Stille