Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Hilfe bei DB, falsche Kd Nr in Bericht

Begonnen von snookie, Juli 08, 2012, 12:57:15

⏪ vorheriges - nächstes ⏩

snookie

Hallo zusammen,

ich habe eine DB für ein Seminar erstellt und bin so langsam am verzweifeln...

Und zwar zieht sich die DB in meinem Bericht die Falschen Kunden zu den Kundennummern, bin eig. der Meinung die Beziehungen etc sind richtig gesetzt, habe den Bericht auch schon div. male neu gemacht, kann aber nicht entdecken woran es liegt...

Vllt übersehe ich etwas offensichtliches?!

Hoffe mir kann jmd helfen :S
Beziehungen der DB


Feldliste des Berichts "Rechnung"


Rechnung1


Rechnung2


Kundentabelle

DF6GL

HAllo,

ja, direkt ins Forum im Antwort-Fenster unter Erweitere Optionen.


WIE rufst Du denn den Bericht auf?  WIE lautet die Datenherkunft des Berichtes? (Im Falle einer Abfrage bitte deren SQL-String)

snookie

#2
Die Datenherkunft müsste ja eig durch die Feldliste + Beziehungsübersicht ersichtlich sein

Aufrufen,.. öhm.. ich öffne den Bericht einfach?!

edit: Ich seh gerade, dass in der Feldliste vom Bericht KdNr 2 mal auftaucht... ich habe den Bericht schon mehrmals erstellt, der Fehler taucht aber auf egal ob ich die KdNr aus der Tabelle Kunden oder aus der Tabelle Rechnung beziehe...

DF6GL

Hallo,

aus der Feldliste sieht man keine Abfrageverknüpfungen.

Ok, Du öffnest den Bericht per Doppelklick im Datenbankfenster (Navi-Bereich).



WIE also lautet der SQL-String der Abfrage? (Wie heißt der Eintrag in der Berichtseigenschaft "Datenherkunft"?)

snookie

#4
Zitat von: DF6GL am Juli 08, 2012, 13:18:53
WIE also lautet der SQL-String der Abfrage? (Wie heißt der Eintrag in der Berichtseigenschaft "Datenherkunft"?)

Also wenn ich in die Berichtseigenschaften gehe und da auf "Daten" > "Datensatzquelle" und "..." anklicke kommt folgende Darstellung... Hoffe das meinst du? Sorry, bin echter Access Anfänger

Und bzgl. der "Abfrageverknüpfung"... habe den Bericht über den Berichtsassistenten erstellt und den Bericht nicht auf Basis einer vorherig erstellen Abfrage erstellt...



DF6GL

#5
Hallo,

ja , das meinte ich so "ungefähr", wobei das nicht der SQL-String der Abfrage, nur deren visuelle Darstellung ist.  Suche in diesem "Abfrage-Generator" (z. B. im der Ribbonleiste) nach "SQL-Ansicht" und kopiere (copy&paste) den hier her.

Nebenbei bemerkt:
-- die Beziehungen im Beziehungsfenster solltest Du mit ref. Integrität ausstatten...  
-- Die Zuordnung eines Ortes zu einer PLZ ist mehrdeutig. Es gibt sowohl PLZ mit mehreren Orten als auch Orte mit mehreren PLZ. Füge also zusätzlich in Tabelle "Rechnungen" den Ort hinzu oder erweitere Tabelle "PLZ" um ein ID-Feld ("PLZID", Primärschlüsselfeld) und entferne den Primärschlüssel vom Feld "PLZ", damit mehrere PLZ mit unterschiedlichen Orten erfasst werden können.


PS: Sehe gerade, dass "PLZ" in Tabelle "PLZ" vermutlich gar kein Primärschlüssel ist, das kann zu mehrfachen Datensätzen derselben Rechnung führen, was bei dieser "Fehlfunktion" des Berichtes eine Rolle spielen kann.

snookie

SELECT Kunden.K_KdNr, Kunden.K_Anrede, Kunden.K_Name, Kunden.[K_Straße+HsNr], Kunden.K_PLZ, Rechnungen.RG_AuftragsNr, Rechnungen.RG_KdNr, Rechnungen.RG_PNr, Rechnungen.RG_Menge, Rechnungen.RG_Datum, Rechnungen.RG_Nettobetrag, Rechnungen.RG_UST, Rechnungen.RG_Zahlungsbetrag, PLZ.Ort
FROM PLZ INNER JOIN (Kunden INNER JOIN Rechnungen ON Kunden.[K_KdNr] = Rechnungen.[RG_KdNr]) ON PLZ.PLZ = Kunden.K_PLZ;


Bzgl. Feld Ort im Bericht "Rechnung" einfügen, muss ich dann den Ort nicht manuell eingeben? Das wollte ich eig umgehen.. Oder zieht er sich das dann Trotzdem wenn ich die PLZ eingebe und ich die entsprechenden Änderungen mache?

DF6GL

Hallo,

wie gesagt:   Um eine eindeutige Zuordnung einer PLZ zu einem Ort herzustellen, debdarf es ein (zusätzliches) ID-Feld in Tabelle "PLZ" .


In der Tabelle gibt es dann alle möglichen Kombinationen aus PLZ und Ort, die über den PK eindeutig auswählbar sind. Dieser PK wird in "Rechnungen" abgelegt, nicht mehr die PLZ selber.


Die Abfrage-SQL sieht soweit richtig aus, unter der Annahme, das ohne Rücksicht auf das oben Gesagte das Feld "PLZ" in Tabelle "PLZ" als Primaärschlüssel ausgeführt wird.

Nochmal PS:

Verzichte dringend(!!!!!!!!!!!!!!!!!!!!!!!!!!!!) auf Sonder- und Leerzeichen in Namen (--> "K_Straße+HsNr") sowie auf die Verwendung reservierter Wörter.

snookie

Ok also nochmal zum Verständnis bzgl. der PLZ/ Ort Tabelle:

Ich Füge in der Tabelle PLZ eine neue Spalte mit IDPLZ hinzu und weise dieser den Primärschlüssel zu... wie gehe ich dann in der Tabelle Rechnungen vor? Habe dort zZ ja nur die PLZ..

Ich versteh noch nicht ganz wie ich durch die PLZ ID und den Primärschlüssel Doppellungen ausschließe... dann müsste ich ja eig noch einen code oder ähnliches in der Tabelle Rechnungen einfügen, die mich nach der PLZ Eingabe fragt, welche PLZ bzw. welcher Ort nun der richtige ist ?!

Zitat von: DF6GL am Juli 08, 2012, 13:44:10
Verzichte dringend(!!!!!!!!!!!!!!!!!!!!!!!!!!!!) auf Sonder- und Leerzeichen in Namen (--> "K_Straße+HsNr") sowie auf die Verwendung reservierter Wörter.

Ok, das ist interessant... unser Dozent in dem Seminar hat nur so gearbeitet... Habe das dann entsprechend bei den Bezeichnungen übernommen... Was ist die Konsequenz daraus?! :S


DF6GL

Hallo,

in Tabelle "Kunden" wird das Feld K_PLZ in K_UIDPLZ umbenannt und in Zahl,Long geändert.  (Änderung an entspr. Formularen auch durchführen)

So dann wird in den Beziehungen eine Verknüpfung von IDPLZ zu K_IDPLZ  mit ref. Integr. hergestellt.  (Bei allen anderen Beziehungen auch die ref. Int. einstellen)

Danach die Berichtsabfrage neu erstellen.. 


snookie

#10
Versuche gerade die Änderungen vorzunehmen, habe nun aber folgendes Problem:

Wenn ich in der Tabelle PLZ die Spalte IDPLZ neu hinzufüge und diese als Autowert formatiere geht dies ja nicht, weil schon Daten vorhanden sind... das ganze anders herum zu machen.. Erst neue Tabelle mit IDPLZ (Autowert) und Daten kopieren und einfügen erscheint mir gerade recht umständlich da ich scheinbar nicht wie zB bei Excel mit strg + a alle Datensätze auswählen kann sondern die Manuell auswählen muss... ?! Gibt es keinen anderen weg?

Edit: Habe gerade eine neue Tabelle PLZ erstellt mit PLZID (Autowert) und leeren Spalten "PLZ" und "Ort", habe die Spalten PLZ und Ort in einer alten PLZ Tabelle markiert und wollte diese nun in die neue Tabelle einfügen... nun wurde 1. beim Autowert mit "46491" begonnen (PLZ sind 46490 Datensätze) und 2. wurden alle weiteren Datensätze die Access, warum auch immer, nicht einfügen konnte (Meldung, dass zu viele Datensätze) in eine neue Tabelle "Einfügefelder" kopiert...

PS: Frage hat sich erledigt, schon hinbekommen :) versuche nun die Änderungen umzusetzen...