Hilfe - Access gibt doppelte Datensätze aus!

Hallo,

ich habe ein großes Problem, bin schon stundenlang am suchen und am verzweifeln. Hoffe, mir kann jemand helfen.

Ich soll eine Datenbank erstellen. Habe ein MySQL Backend und ein Access 2000 Frontend. Ich hab die beiden über MyODBC verknüpft, das läuft auch. Die Daten waren vormals in einer Excel - Datei, weil es da schon Probs gab., hab ich die per Copy/Paste in die Access - Datenbank und dann per Access to MySQL Converter rübergeschaufelt.Hab vorher alles schon per Formatierung und so voreingestellt.
Jetzt hab ih folgende Problem: Wenn ich eine Abfrage machen will, zeigt er mir die Datensätze doppelt an! Bei den Tabellen handelt es sich um zusammengesetzte Primärschlüssel, die ich während des Verbindungsvorgangs mit ODBC einstelle. So eine Abfrage sieht z.B. folgendermaßen aus:

Order Position
8400117755 1
8400117755 2
8400117755 3
8400117755 4

In mysql und access wird das jeweils optimal angezeigt. Bei der Abfrage macht access aber folgendes:

Order Position
8400117755 1
8400117755 2
8400117755 3
8400117755 1

Ich weiß überhaupt nicht, woran das liegen könnte, zumal access ja alles hundertprozentig übernimmt. Bitte, ich brauche Hilfe!!!

Hallo,

leider kann ich das Problem hier nicht nachvollziehen. Ich habe aber die Online-Hilfe aufgerufen und als Suchtext „keine Duplikate“ eingegeben. Dann werden zwei Hilfetexte zur Vermeidung von doppelten Zeilen in Abfragen angezeigt.

Die Hilfetexte nimmt dieser Editor nicht an, sonst hätte ich sie reinkopiert. - Ich hoffe, dass die Onlinehilfe die Lösung bringt, falls du nicht schon selbst drauf gekommen bist. Ansonsten brauche ich mehr Infos, z.B. die Dateien.

Schöne Grüße

Ralph Wagner

Auf den ersten Blick: Es stimmt etwas mit dem Primärschlüssel nicht, bzw mit dem „Join“ der Abfrage. Poste bitte den SQL Statement rein.

Hast du beim Rüberkopieren der Daten auch geprüft, ob die gleiche Anzahl von Datensätzen kopiert wurden (keine ausgelassen und keine neue dazu)?

Hoi

mit der Info kann ich nichts anfangen. Kenne den Fehler, wenn mann gleichzeitig aus mehreren abfragen eine Auswertung macht. Hab dann mehrere Abfragen nach einander gemacht. Glaube aber nicht, daß das dir weiterhilft…Gruß Dieter

Hi!Danke erstmal für die schnelle Antwort.
Die Duplikate sind gewünscht. Die repräsentieren, wie viele Bestellungen gemacht worden sind. Unterschieden werden die durch die Positionsnummer. Ist also ein zusammengesetzter Primärschlüssel. Weil der auch als solcher deklariert ist, wundert es mich, dass Access die sonst richtigen Daten anders ausgibt als erwartet.

Hi!
Auch dir danke für die schnelle Antwort. Ja, bei allen Datensätzen ist die gleiche Anzahl an Datensätzen rüberkopiert worden. Ich bin absoluter Neuling in der Geschichte, deswegwn hab ich mir das SQ - Statement nicht angeschaut. Aber das sieht folgendermaßen aus:

SELECT [order list].[Order number], [order list].[Position number], [order list].[Order date], [order list].[Supplier number], [order list].[State Aid number - SAP], [order list].[Item name], [order list].[Order value], [order list].Currency, [order list].[Delivery date], [order list].Destination, [order list].[Payment Scheme]
FROM [capex no reference] RIGHT JOIN [order list] ON ([capex no reference].[Position number] = [order list].[Position number]) AND ([capex no reference].[Order number] = [order list].[Order number])
WHERE ((([order list].[Order number])=„8400063755“));

Da zeigt er mir die 1 zweimal an, obwohl das nur 16 Zeilen sind und die auch richtig in der Tabelle angezeigt werden. Könnte das vielleicht auch am zusammengesetzten Primärschlüssel liegen?

Hi!
DEanke für deine schnelle Antwort. Nee, ich mach aus mehreren Tabellen, die ich miteinander verknüpft habe, eine Abfrage. Daran könnte das aber nicht liegen,oder? Wie gesagt, bin absoluter Neuling auf dem Gebiet.

Öffne bitte in die Tabelle „Order list“ direkt auf, gehe ich die Spalte „Order number“, mach ein Rechtsklick drin und setze einen Filter mit dem Wert „8400063755“ rein.

Wieviele Positionen werden nach dem Filtern angezeigt?

P.S. Welche Access Version verwendest du?

Erzeigt mir 16 Positionen für diese Bestellnummer an. Ich benutze Access 2000.Hab die Beziehung zwischen den Tabellen so eingerichtet, dass er mir aus dieser Tabelle alle anzeigt, und aus einer damit verbundenen nur die Werte, die gleich sind. Die verbundene Tabelle hat nur 14 von der Nummer. Ist das ein Problem oder übergeht der das dann, wenn die Beziehung so eingestellt ist?

Liegt bestimmt an den Verknüpfungseigenschaften.
ist deine Datenbank groß?
Kannst du sie mailen?
www.buchermotormaeher.de da findest du meine Mailadresse
gruß
Dieter Schäuble

Ich schick mal einen Ausschnitt aus der Tabelle, der interessant ist nebst der abfrage, wo es probleme gibt. danke schonmal im voraus.

Sorry, ich nutze Access nicht.

Hast du in der Tabelle mit den 16 Einträgen eine PosNr, die doppelt vorkommt?

Poste doch die Inhalte der beiden Tabellen (nur die Spalten „Nummer“/„Position“)

Hallo,

bedaure, diesmal bin ich etwas spät dran. Ich bin erst vor 2 Std. nach Hause gekommen und hab’ dann versucht, den Fehler zu reproduzieren. Allerdings vergeblich, und daher kann ich auch keine Lösung präsentieren. Ich habe deine Problembeschreibung aber an einen Kollegen weitergeleitet. Er wird mich heute gegen Abend anrufen. Ich melde mich dann wieder.

Gruß

Ralph

Hallo nochmal,

mir ist gerade eingefallen, dass ich im Laufe der Jahre manchmal (selten) bei verschiedenen Datenbanken absolut unerklärliche Fehler hatte, für die niemand eine Erklärung fand und die offenkundig unlösbar waren. Dann griff ich zum letzten Mittel, legte eine neue MDB an und importierte alle Elemente der betroffenen DB. Danach funktionierte alles weder einwandfrei.
Soweit ich mich erinnere, traten solche Fehler mit dieser Lösung allerdings nur bei Datenbanken auf, die mehr als ein Jahr ununterbrochen in Betrieb waren (Restaurant-DB, Masseur-DB).

Gruß

Ralph

Hallo,danke!:smile:

Hallo,

gerade habe ich mit meinem Kollegen gesprochen. Auch er kennt keine Lösung. Er selbst hat aber auch schon defekte MDBs mit unerklärlichen Fehlern gehabt, gerade bei Access 2000. Mehr als den Rat, eine neue MDB anzulegen und alle Elemente aus der alten zu importieren, können wir nicht bieten.
Ich hoffe, du findest die Lösung, falls das nicht funktioniert.

Gruß

Ralph

Hallooooo,
das ist nicht mein Thema - kann leider nicht helfen

SELECT [order list].[Order number], [order list].[Position number], [order list].[Order date], [order list].[Supplier number], [order list].[State Aid number - SAP], [order list].[Item name], [order list].[Order value], [order list].Currency, [order list].[Delivery date], [order list].Destination, [order list].[Payment Scheme]
FROM [capex no reference] RIGHT JOIN [order list] ON ([capex no reference].[Position number] = [order list].[Position number]) AND ([capex no reference].[Order number] = [order list].[Order number])
WHERE ((([order list].[Order number])=„8400063755“));

Hallo Ohana,

Das SQL-Statement ist völlig korrekt. Daß eine Positions-nummer in der Abfrage doppelt vorkommt, kann in Access nur daran liegen, daß OrderNr und PositionsNr ev. nur in der Tabelle „Capex no reference“ einen zusammengestzten Primärschlüssel bilden, in der Tabelle „Order List“ aber nicht (-> wegen des RIGHT JOIN, bei LEFT JOIN wäre es umgekehrt) und daß die in der Abfrage doppelt aufschei- nende PositionsNr in der „Order List“ auch doppelt vor- kommt. Sind die Tabellen in Access importiert oder nur über ODBC eingebunden? Im letzteren Fall sind vielleicht die Verknüpfungen nicht korrekt.
Gruß
Gerd

Hallo,
nein, an den Verbindungen kann es nicht liegen, die sind alle richtig eingestellt. Was ich mir aber vorstellen kann, ist, dass was mit den ODBC - Verbindungen nicht stimmt. Was könnte ich da machen?
Grüße