PDA

Vollständige Version anzeigen : Verknüpfte Tabellen - Eingabe in Abfrage nicht möglich


Pusteblume
04.05.2011, 09:48
Hallo ihr klugen Köpfe :)

Ich habe eine Tabelle "Aktionsliste" und eine weitere "Berichte", die verknüpft sind mit einer 1:1 Verknüpfung.

Wenn ich die Tabelle "Aktionsliste" mit der anderen Tabelle in eine Abfrage zusammenstelle, dann kann ich in der Tabelle "Berichte" Daten eingeben aber in der angehängten Tabelle "Aktionsliste" nicht. Liegt das an der Verknüpfung? Wenn ich nämlich anders verknüpfe, zeigt er mir nicht die gewünschten Daten an.

Weiß jemand Rat?

Atrus2711
04.05.2011, 09:53
Hi,

Abfragen über 1:1-Beziehungen sind grundsätzlich durchaus editierbar. Aber es gibt natürlich Einschränkungen zur Nutzbarkeit.

Zeig doch mal die ganze SQL.

Und: sicher, dass die 1:1-Beziehung da sinnhaft ist? 1:1 ist selten.

Pusteblume
04.05.2011, 10:03
SELECT Berichte.ID, Berichte.Datum, Berichte.Abteilung, Berichte.Gruppe, Berichte.[Titel/Name], Aktionsliste.MaßnahmenDatum, Aktionsliste.Was, Aktionsliste.Wer, Aktionsliste.[Bis Wann], Aktionsliste.Erledigt, Aktionsliste.Notiz, Aktionsliste.Hyperlink
FROM Berichte INNER JOIN Aktionsliste ON Berichte.ID = Aktionsliste.Berichte_Ident_Verknüpfung
WHERE (((Berichte.Abteilung)="HB"))
ORDER BY Berichte.Datum, Aktionsliste.MaßnahmenDatum, Aktionsliste.[Bis Wann];


Bin mir noch etwas unsicher was verknüpfte Tabellen und deren Beziehungen angeht...

Atrus2711
04.05.2011, 10:17
Hi,

die verknüpfenden Felder sollten schon mit rein in die SELECT-Anweisung.

Pusteblume
04.05.2011, 10:22
Wie jetzt?

Atrus2711
04.05.2011, 12:57
Das Feld Berichte_Ident_Verknüpfung fehlt in der Liste, die zwischen SELECT und FROM steht.

Nimm mal alle Felder beider Tabellen da mit auf und teste, ob sich die Abfrage (!) dann bearbeiten lässt.

Pusteblume
04.05.2011, 13:30
Das war der Wink mit dem Zaunpfahl. Ich kann in die Abfrage wieder etwas eingeben und auch ins Formular. Problem ist jedoch jetzt, dass er mir den gleichen Datensatz auch in dem anderen Formular anzeigt. Wie kann ich das unterlassen?

Atrus2711
04.05.2011, 13:32
Wie sieht denn der Entwurf von diesem anderen Formular aus? Mein Glaskugel ist gerade in Reparatur...

Pusteblume
04.05.2011, 13:45
Das andere Formular enthält Daten, die auch im bis jetzt genannten vorkommen. Wie z.B. Titel. Man gibt den Titel sowohl in das eine als auch in das andere Formular ein.

SELECT Berichte.ID, Berichte.Datum, Berichte.Uhrzeit, Berichte.Abteilung, Berichte.Gruppe, Berichte.[Titel/Name], Berichte.Detail, Berichte.Eingeber, Berichte.Schicht, Berichte.Schichtbericht, Berichte.Tagesbericht, Berichte.Wochenbericht, Berichte.Monatsbericht, Berichte.[Maßnahme erledigt], Berichte.ID, Berichte.Hyperlink, Berichte.KPI
FROM Berichte
WHERE (((Berichte.Abteilung)="HB") AND ((Berichte.KPI) Is Null))
ORDER BY Berichte.ID;


Dies ist der Code des anderen Formulars.

Atrus2711
04.05.2011, 13:50
Diese SQL zeigt eine Teilmenge der Sätze aus der Tabelle Berichte. Da diese Tabelle auch in der SQL der ersten Formulars mitbeteiligt war, gibt es natürlich "gleiche" Daten. Das ist ja der Sinn einer Datenbank: Daten zerlegen um sie bei bedarfsgerecht neu zu kombinieren...

Wo ist das Problem?

Man gibt den Titel sowohl in das eine als auch in das andere Formular ein
Vielleicht ist das Problem hier. :) Wozu wird der Titel an zwei Stellen gepflegt?

Pusteblume
25.07.2011, 14:21
Muss das Thema noch mal aus der Versenkung holen. Irgendwie taucht der Fehler leider wieder auf. Mein Code sieht diesmal so aus:
SELECT Berichte.ID, Berichte.Datum, Berichte.Jahr, Berichte.Monat, Berichte.Tag, Berichte.Wochentag, Berichte.KW, Berichte.Uhrzeit, Berichte.Abteilung, Berichte.Gruppe, Berichte.[Titel/Name], Berichte.Detail, Berichte.Eingeber, Berichte.Schicht, Berichte.Schichtbericht, Berichte.Tagesbericht, Berichte.Wochenbericht, Berichte.Monatsbericht, Berichte.[Maßnahme erledigt], Aktionsliste.Hyperlink, Berichte.KPI, Berichte.Einheit, Berichte.Wert, Berichte.Betrieb, Aktionsliste.Berichte_Ident_Verknüpfung, Aktionsliste.MaßnahmenDatum, Aktionsliste.Was, Aktionsliste.Wer, Aktionsliste.[Bis Wann], Aktionsliste.Erledigt, Aktionsliste.Notiz, Aktionsliste.Hyperlink
FROM Aktionsliste INNER JOIN Berichte ON Aktionsliste.Berichte_Ident_Verknüpfung = Berichte.ID
WHERE (((Berichte.Abteilung)="HB"))
ORDER BY Aktionsliste.MaßnahmenDatum;


Ich seh den Fehler nicht. Und dummerweise weiß ich auch nicht, wie ich es beim letzten Mal gelöst habe.

Atrus2711
25.07.2011, 14:25
Hi,

wie ist denn die Frage, oder soll ich die aus den Beiträgen zurückbilden?!

Pusteblume
25.07.2011, 14:28
Das ist die Frage ;)

Ich habe eine Tabelle "Aktionsliste" und eine weitere "Berichte", die verknüpft sind mit einer 1:1 Verknüpfung.

Wenn ich die Tabelle "Aktionsliste" mit der anderen Tabelle in eine Abfrage zusammenstelle, dann kann ich in der Tabelle "Berichte" Daten eingeben aber in der angehängten Tabelle "Aktionsliste" nicht.

Atrus2711
25.07.2011, 14:35
Ist die 1:1-Beziehung da noch existent?

Wenn ja: guck dir mal die Infos an, die bei Doppelklick auf die Beziehungslinie im Beziehungsmodell erscheinen. Da ist eine Master- und eine Detailtabelle aufgeführt. Die Mastertabelle begrenzt die Detailtabelle. Da bei 1:1 jeder der Master sein kann, liest Access den Master aus der Mausbewegung: die Tabelle, die gezogen wird, ist der Master. Die, auf die gezogen wird, ist das Detail.

Ist das bei dir mglw. falschherum?

Pusteblume
25.07.2011, 14:52
1:1 Beziehung ist noch existent.

Habs jetzt mal in beide "Richtungen" versucht, man kann aber immer noch nicht einen neuen DS eingeben. Letztes Mal hat ja irgendwas gefehlt, aber jetzt hab ich schon alles mit in die Abfrage hineingetan!???

Atrus2711
25.07.2011, 14:55
Hi,
sind wirklich alle Felder beider Tabellen mit drin?

Pusteblume
25.07.2011, 15:18
Hab die Abfrage jetzt nochmal neu gemacht und einfach alle Felder die in beiden Tabellen sind, mit hineingefügt. Alles bleibt beim Alten und man kann nichts eingeben...

Atrus2711
25.07.2011, 15:34
?! Lad mal hoch...

Pusteblume
26.07.2011, 09:12
Anbei hochgeladen!

Es geht um die Abfrage Query_Maßnahmen_Alle. In dieser kann ich nichts anfügen.

Atrus2711
26.07.2011, 09:37
Hi,


Primärschlüssel in Tabelle Berichte einrichten, dann gehts. Ohne eindeutige Werte gibts keine aktualisierbare Datenmenge.
Eine db-weite Beziehung ist bisher nicht definiert. Die Abfrage deutet auch eher eine 1:n-Beziehung an.

Pusteblume
26.07.2011, 12:52
Ja cool. Jetzt kann ich in der Abfrage wieder was eingeben. Aber welche Einstellung ist falsch, dass ich in das Formular Forms_Maßnahmen nichts eingeben kann? Hast Du ne Idee?

Atrus2711
26.07.2011, 13:01
Da steht die Formulareigenschaft Anfügen zulassen auf Nein. :mrcool:

Pusteblume
26.07.2011, 13:40
Jo. Stimmt. Vielen Dank für Deine Hilfe!!!!

Matzeson
26.07.2011, 14:01
Wieso sollte man in dem Bedingungsteil des SQLs (Where) nur Felder verknüpfen dürfen, die auch im SELECT abgefragt sind?
Das halte ich für unlogisch, gerade wenn man dynamisch alle Spalten inkl. Werte einer Abfrage ausgibt will man nich zwingend irgendwelche Auto-IDs anzeigen...

Korrigiert mich wenn ich falsch liege ;)