Behandeln von Fehlern, die beim Aktualisieren von Daten in Access-Abfragen und -Formularen auftreten können

Ursprüngliche KB-Nummer: 328828

Hinweis

Erfordert grundlegende Makro-, Codierungs- und Interoperabilitätskenntnisse. Dieser Artikel bezieht sich auf eine Microsoft Access-Datenbank (.mdb und ACCDB) und ein Microsoft Access-Projekt (ADP).

In diesem Artikel werden Fehler beschrieben, die in Microsoft Access auftreten können, wenn Sie Daten in Abfragen und Formularen aktualisieren. In diesem Artikel werden auch die Ursachen der Fehler und die Problembehandlung beschrieben.

Wenn Sie versuchen, Daten in einer Abfrage oder in einem Formular zu aktualisieren, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen:

Operation muss eine aktualisierbare Abfrage verwenden.

-oder-

Dieses Recordset kann nicht aktualisiert werden.

Informationen zur Problembehandlung, die beim Aktualisieren von Daten in einer Abfrage auftreten können

  • Wenn die Abfrage auf drei oder mehr Tabellen basiert und eine m:n-Beziehung besteht, können Sie die Daten nicht direkt in der Abfrage aktualisieren. Sie können die Daten in einem Formular oder auf einer Datenzugriffsseite aktualisieren. Sie können dies basierend auf der Abfrage tun, wenn die RecordsetType Eigenschaft des Formulars auf Dynaset(Inkonsistente Updates) festgelegt ist.

  • Wenn es sich bei der Abfrage um eine Kreuztabellenabfrage handelt, können Sie die Daten in der Abfrage nicht aktualisieren.

  • Wenn es sich bei der Abfrage um eine Microsoft SQL-Passthrough-Abfrage handelt, können Sie die Daten in der Abfrage nicht aktualisieren.

  • Wenn die Abfrage eine Summe, einen Durchschnitt, eine Anzahl oder einen anderen Typ von Summe für die Werte in einem Feld berechnet, können Sie keine Daten in der Abfrage aktualisieren. Außerdem können Sie keine Abfrage aktualisieren, die auf ein Feld in der Zeile Aktualisieren auf einer Kreuztabelle, einer Abfrage, einer Auswahlabfrage oder einer Unterabfrage verweist, die Summen oder Aggregatfunktionen enthält. Um dieses Problem zu umgehen, verwenden Sie die Funktion Domänenaggregat in der Zeile Aktualisieren auf einer Updateabfrage. Sie können auf Felder aus einer Kreuztabellenabfrage, einer Auswahlabfrage oder einer Unterabfrage verweisen, die Summen oder Aggregatfunktionen enthalten.

  • Wenn es sich bei der Abfrage um eine Union-Abfrage handelt, können Sie keine Daten in der Abfrage aktualisieren.

  • Wenn die Unique Values-Eigenschaft der Abfrage auf Ja festgelegt ist, können Sie keine Daten in der Abfrage aktualisieren. Um dieses Problem zu umgehen, legen Sie die Unique Values-Eigenschaft der Abfrage auf Nein fest.

  • Wenn die Abfrage eine verknüpfte ODBC-Tabelle ohne eindeutigen Index oder eine Paradox-Tabelle ohne Primärschlüssel enthält, können Sie keine Daten in der Abfrage aktualisieren. Um dieses Problem zu umgehen, fügen Sie der verknüpften Tabelle einen Primärschlüssel oder einen eindeutigen Index hinzu.

  • Wenn Sie nicht über die Berechtigungen Daten aktualisieren für die Abfrage oder die zugrunde liegende Tabelle verfügen, können Sie keine Daten aktualisieren. Um dieses Problem zu beheben, weisen Sie Berechtigungen zum Aktualisieren der Daten zu.

  • Wenn die Abfrage mehr als eine Tabelle oder abfrage enthält und die Tabellen oder Abfragen nicht durch eine Verknüpfungslinie in der Entwurfsansicht verknüpft sind, können Sie keine Daten in der Abfrage aktualisieren. Um dieses Problem zu beheben, müssen Sie die Tabellen ordnungsgemäß verknüpfen, damit Sie sie aktualisieren können.

  • Wenn das Feld, das Sie aktualisieren möchten, ein berechnetes Feld ist, können Sie keine Daten in der Abfrage aktualisieren.

  • Wenn das Feld, das Sie aktualisieren möchten, schreibgeschützt ist, die Datenbank schreibgeschützt geöffnet ist oder sich die Datenbank auf einem schreibgeschützten Laufwerk befindet, können Sie die Daten in der Abfrage nicht aktualisieren. Um dieses Problem zu vermeiden, öffnen Sie die Datenbank nicht als schreibgeschützt. Wenn sich die Datenbank auf einem schreibgeschützten Laufwerk befindet, entfernen Sie das schreibgeschützte Attribut vom Laufwerk, oder verschieben Sie die Datenbank auf ein Laufwerk, das nicht schreibgeschützt ist.

  • Wenn das Feld im Datensatz, den Sie aktualisieren möchten, gelöscht oder von einem anderen Benutzer gesperrt wird, können Sie keine Daten in der Abfrage aktualisieren. Ein gesperrter Datensatz kann aktualisiert werden, sobald der Datensatz entsperrt ist.

  • Wenn die Abfrage auf Tabellen mit einer 1:n-Beziehung basiert, lauten die folgenden Feldtypen, die Sie möglicherweise nicht ändern können:

    • Join-Feld von der Seite "1".
    • Das Feld "viele" für seitenseitige Verknüpfungen wird nicht im Datenblatt angezeigt.
    • Joinfeld von der Seite "n" aus, nachdem Sie Daten auf der Seite "1" aktualisiert haben.
    • Ein leeres Feld aus der Tabelle auf der "1"-Seite einer 1:n-Beziehung mit einem äußeren Join ist vorhanden.
    • Der gesamte eindeutige Schlüssel der ODBC-Tabelle ist nicht die Ausgabe.

    Sie können eines dieser Probleme beheben, wenn Sie die richtige Aktion aus der folgenden Liste ausführen:

    • Aktivieren Sie kaskadierende Updates zwischen den beiden Tabellen.
    • Fügen Sie der Abfrage das Verknüpfungsfeld von der n-Seite hinzu, damit Sie neue Datensätze hinzufügen können.
    • Speichern Sie den Eintrag. Sie können Änderungen am Side Join-Feld "viele" vornehmen.
    • Geben Sie Werte in Felder aus der Tabelle auf der Seite "n" ein. Dies ist nur möglich, wenn das verknüpfte Feld von der 1-Seite einen Wert für diesen Datensatz enthält.
    • Wählen Sie alle Primärschlüsselfelder der ODBC-Tabellen aus, um einzufügen.

Informationen zur Problembehandlung, die auftreten können, wenn Sie Daten in einem Formular aktualisieren

  • Sie können keine Daten in einem Formular aktualisieren, wenn das Formular auf einer gespeicherten Prozedur mit mehr als einer Tabelle basiert.

  • Sie können keine Daten in einem Formular aktualisieren, wenn das Formular auf einem ADO-Recordset (ActiveX Data Objects) basiert. Mit Zugriffsformularen können Sie Daten aus einem ADO-Recordset bearbeiten, wenn das ADO-Recordset mit einer Kombination aus MSDataShape und den SQL Server OLEDB-Anbietern erstellt wird.