Saturday, January 1, 2022

Ein Feld in meiner App ist unerwartet schreibgeschützt

Wichtig Access Services 2010 und Access Services 2013 werden aus der nächsten Version von SharePoint entfernt. Wir empfehlen Ihnen, keine neuen Web-Apps zu erstellen und Ihre vorhandenen Apps auf eine alternative Plattform wie Microsoft Power Apps zu migrieren.

Wenn Sie eine Abfrage verwenden, um Daten für eine Ansicht in einer Access-Web-App bereitzustellen, sind einige Felder, von denen Sie erwarten, dass sie bearbeitet werden können, in der Ansicht schreibgeschützt. Insbesondere wenn Sie mehr als eine Tabelle verwenden und mindestens ein Join vorhanden ist, gibt es Einschränkungen bezüglich der Aktualisierung von Abfragefeldern.

Hinweis: In diesem Thema geht es um Access-Web-Apps. Sie gilt nicht für Desktop-Datenbanken. Wenn Sie Probleme mit einer Abfrage in einer Desktop-Datenbank haben, finden Sie eine Übersicht im Artikel Einführung in Abfragen .

Anforderungen an aktualisierbare Abfragefelder

  • Nur Felder aus der Tabelle, bei der das verknüpfte Feld keine eindeutigen Werte hat – die „most-many"-Tabelle – können aktualisiert werden.

  • Die Abfrageausgabe muss die Primärschlüsselfelder für die Most-Many-Tabelle enthalten.

  • Die Most-Many-Tabelle muss sich auf der Innenseite aller Outer-Joins befinden (dh auf der linken Seite eines Left-Outer-Joins oder auf der rechten Seite eines Right-Outer-Joins).

Diagramm einer Abfrage, die zeigt, welche Felder aktualisiert werden können

In dieser Abfrage ist die Tabelle "Aufgaben" die Tabelle mit den meisten, da sie Daten in der Tabelle "Projekte" nachschlägt.

Da der Primärschlüssel für Aufgaben jedoch nicht in der Ausgabe enthalten ist, kann keines seiner Felder aktualisiert werden.

Auch wenn der Schlüssel hinzugefügt wird, ist keines der Felder, die aus der Tabelle Projects stammen, aktualisierbar, da es sich nicht um die "meist-viele"-Tabelle handelt.

Seitenanfang

Finden und beheben Sie ein aktualisierbares Feldproblem

Der Grund dafür, dass Ihr Feld nicht aktualisierbar ist, bestimmt, wie Sie Aktualisierungen aktivieren können. Um diesen Grund herauszufinden, öffnen Sie die Abfrage in der Entwurfsansicht und untersuchen Sie die Details des Abfrageentwurfs.

  1. Wenn Sie in einem Browser starten, öffnen Sie die Web-App in Access: Klicken Sie in der oberen rechten Ecke der App auf Einstellungen > In Access anpassen .

  2. Wenn der Navigationsbereich in Access nicht geöffnet ist, drücken Sie F11, um ihn anzuzeigen. Klicken Sie dann im Navigationsbereich mit der rechten Maustaste auf die Abfrage, und klicken Sie dann auf Entwurfsansicht .

    Kontextmenü einer Abfrage im Navigationsbereich

  3. Bestimmen Sie, welche Tabelle in der Abfrage die meisten-viele-Tabelle ist. Als Faustregel gilt, dass die Tabelle mit den meisten vielen die Tabelle ist, die Daten in einer anderen Tabelle nachschlägt.

  4. Vergewissern Sie sich, dass sich das zu aktualisierende Feld in der Most-Many-Tabelle befindet. Wenn dies nicht der Fall ist, können Sie nichts an der Abfrage tun, um das Problem zu umgehen. Als alternative Möglichkeit, das Feld bearbeiten zu lassen, können Sie eine neue, aktualisierbare Ansicht erstellen, die nur auf der Tabelle basiert, und diese Ansicht dann bei Bedarf einfach öffnen. Sie können beispielsweise eine Schaltfläche mit einem Makro bereitstellen, das die Ansicht öffnet.

  5. Überprüfen Sie, ob der Primärschlüssel für die Most-Many-Tabelle in der Abfrageausgabe enthalten ist. Wenn er nicht vorhanden ist, fügen Sie der Abfrageausgabe den Primärschlüssel hinzu .

  6. Doppelklicken Sie auf jeden Join und überprüfen Sie Folgendes:

    • Der Join ist ein Inner Join; oder,

    • Wenn es sich um einen Outer-Join handelt, befinden sich die meisten Tabellen auf der Innenseite des Joins – auf der linken Seite eines linken Joins oder auf der rechten Seite eines rechten Joins.

Wenn ein Join mindestens eines der beiden vorherigen Kriterien nicht erfüllt, ändern Sie den Join, um die Abfrage aktualisierbar zu machen .

Seitenanfang

Fügen Sie der Abfrageausgabe den meisten Primärschlüssel hinzu

  1. Öffnen Sie die Abfrage in der Entwurfsansicht.

  2. Identifizieren Sie die meisten-viele-Tabelle.

  3. Doppelklicken Sie auf jedes Feld im Primärschlüssel. Jedes Tastenfeld ist mit einem kleinen Schlüssel gekennzeichnet.

  4. In dem Abfrage - Entwurfsbereich, stellen Sie sicher , dass das Feld Anzeigen für die Schlüsselfelder markiert ist einfach hinzugefügt:

    Die Zeile im Abfrageentwurfsbereich anzeigen

Seitenanfang

Ändern Sie einen Join, um eine Abfrage aktualisierbar zu machen

Wenn ein Join eines der oben genannten Kriterien nicht erfüllt, werden Aktualisierungen verhindert. Hier ist ein Beispiel für einen nicht aktualisierbaren Join:

Das Dialogfeld Verbindungseigenschaften

Dies ist ein Left Outer Join – er enthält alles aus der linken Tabelle und die entsprechenden Datensätze aus der rechten Tabelle. Die meisten Tabellen befinden sich jedoch auf der rechten Seite des Joins – wodurch Aktualisierungen verhindert werden.

Möglichkeiten, einen Outer Join aktualisierbar zu machen

Es gibt drei grundlegende Möglichkeiten, einen Join so anzupassen, dass seine Abfrage aktualisierbar ist. Doppelklicken Sie auf den Join, um das Dialogfeld Join-Eigenschaften zu öffnen, und führen Sie dann einen der folgenden Schritte aus:

  • Ändern des Outer-Joins in einen Inner-Join Klicken Sie auf Option 1 im Dialogfeld Join-Eigenschaften .

  • Wechseln der Tabellenpositionen Verschieben Sie die meisten Tabellen auf die Innenseite des Joins und die andere Tabelle auf die Außenseite (verwenden Sie die Kombinationsfelder im Dialogfeld Join-Eigenschaften , um die Tabellennamen für Links und Rechts festzulegen).

  • Richtung der Verbindung ändern Klicken Sie im Dialogfeld Verbindungseigenschaften auf Option 2 oder 3 (ändern Sie den Wert auf einen anderen Wert).

Seitenanfang

No comments:

Post a Comment