Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Hondo am Dezember 08, 2019, 12:11:04

Titel: Abfrage nicht aktualisierbar
Beitrag von: Hondo am Dezember 08, 2019, 12:11:04
Hallo,
habe folgende Tabellen in einer Abfrage, verbunden dbo_tarife_zuordnung.ID_room_types zu dbo_room_types.ID
dbo_room_types (ID, type_name, belegung_erwachsene, belegung_kinder)
dbo_tarife_zuordnung(ID, ID_tarif, ID_toom_types, pms, bm)

pms, bm sind Long-Integer

Die Abfrage sieht so aus:
SELECT dbo_tarife_zuordnung.ID, dbo_room_types.type_name, dbo_tarife_zuordnung.pms, dbo_tarife_zuordnung.bm
FROM dbo_tarife_zuordnung
INNER JOIN dbo_room_types
ON dbo_tarife_zuordnung.ID_room_types = dbo_room_types.ID;


Ändern möchte ich nur die beiden Zahlenfelder pms und bm.
Wo liegt hier das Problem?

Gruß Andreas
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: DF6GL am Dezember 08, 2019, 13:27:38
Hallo Andreas,

es sind zu wenig Hintergründe bekannt und es gibt mehrere mögliche Gründe.

Aus https://support.microsoft.com/de-de/help/328828/how-to-troubleshoot-errors-that-may-occur-when-you-update-data-in-acce



ZitatWenn die Abfrage auf Tabellen mit einer 1: n-Beziehung basiert, werden die Typen der Felder, die Sie nicht ändern können wie folgt:

    Verknüpfungsfeld von der 1-Seite.
    Das "n" Seite Verknüpfungsfeld wird nicht im Datenblatt angezeigt.
    Verknüpfungsfeld von der "n"-Seite nach der Aktualisierung der Daten auf der 1-Seite.
    Ein leeres Feld aus der Tabelle auf der "1"-Seite einer 1: n-Beziehung mit einer äußeren Verknüpfung vorhanden ist.
    Der gesamte eindeutige Schlüssel der ODBC-Tabelle ist nicht die Ausgabe.

Sie können eines dieser Probleme lösen, nehmen Sie die richtige Aktion aus der folgenden Liste:

    Aktivieren von Aktualisierungsweitergaben zwischen den beiden Tabellen.
    Fügen Sie das Verknüpfungsfeld aus der "n"-Seite der Abfrage neue Datensätze hinzufügen können.
    Speichern Sie den Datensatz. Sie können die "n" Seite Verknüpfungsfeld ändern.
    Geben Sie Werte in Felder aus der Tabelle auf der n-Seite. Dies ist möglich, nur, wenn das verknüpfte Feld aus der "1"-Seite für diesen Datensatz einen Wert enthält.
    Wählen Sie alle Primärschlüsselfelder von ODBC-Tabellen eingefügt werden sollen.
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: ebs17 am Dezember 08, 2019, 14:15:09
Dass bereits ein einfacher JOIN sehr hinderlich für eine Aktualisierbarkeit einer Abfrage ist, sollte einen alten Fahrensmann wie Dich aber jetzt nicht mehr überraschen.

Auflösen kann man das zum einen, wenn man eine HFo/UFo-Kombination einsetzt.

Braucht man andererseits eine Abfragelösung: Die beiden Felder kommen aus der gleichen Tabelle. Da kann man auch die Abfrage umformulieren:
SELECT
   TZ.ID,
   TZ.pms,
   TZ.bm
FROM
   dbo_tarife_zuordnung AS TZ
WHERE
   TZ.ID_room_types IN
      (
         SELECT
            ID
         FROM
            dbo_room_types
      )

Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: Hondo am Dezember 08, 2019, 15:06:26
Hallo,
ja hatte lange nichts mehr mit Access und Datenbanken zu tun.
Muss mir das erst mal ansehen.
Gruß und Danke
Andreas
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: Hondo am Dezember 10, 2019, 14:41:09
So jetzt hab ich wieder Zeit.
Warum Hfo/Ufo nicht geht ist weil die Daten im Endlosformular angezeigt werden.
Eberhard, deine Abfrage liefert mir aber kein Feld aus dbo_room_types.

Ich hab das jetzt auf die Quick & very Dirty Methode gelöst indem ich die Feldwerte in Prozeduren ermitteln lasse:
type_name: GetTypeName([ID_room_types])
Erwachsene: getBelegung_erwachsene([ID_room_types])
Kinder: GetBelegung_kinder([ID_room_types])
Dadurch wird die Abfrage aktualisierbar da die Tabelle dbo_room_types rausgeflogen ist.

Gruß Andreas
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: DF6GL am Dezember 10, 2019, 14:58:46
Hallo Andreas,
Zitat
Warum Hfo/Ufo nicht geht ist weil die Daten im Endlosformular angezeigt werden.

Das geht schon, wenn das UFO im Formularfuß des Endlosforms platziert und die Meckerei von Access ignoriert wird..
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: ebs17 am Dezember 10, 2019, 21:42:51
Berechnete Werte lassen sich aber auch nicht aktualisieren, oder ich müsste mich schwer irren.

Auf Performance scheint es nicht anzukommen. Da kann man sich den fehlenden Wert auch per DLookup in die Abfrage holen und die Unterabfrage streichen. Da bleibt dann nur dieser eine Wert nicht direkt aktualisierbar.
Ja, man will eben seine Exceltabelle: Alles sehen, alles ändern usw.
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: Hondo am Dezember 10, 2019, 22:56:48
Hallo,
ja ganz genau.
Aber keine Excel-Tabelle sondern MySQL - zur Entwicklungszeit aber nach Access portiert.
Daher gibt es auch keine Weitergabe von Aktualisierungen später o.Ä.
Gruß Andreas
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: ebs17 am Dezember 10, 2019, 23:00:49
Mit Exceltabelle meinte ich ja das Feeling, das Erwartete.
Titel: Re: Abfrage nicht aktualisierbar
Beitrag von: Hondo am Dezember 10, 2019, 23:09:41
Es gibt halt 2 Frondends, ein Web-FE für die User mit PHP erstellt und ein Access-FE für den Admin.
Daher ist einiges da vieleicht komisch.
Gruß Andreas