online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon reclaimyourcity vom 09.11.2019, 11:00 Options

Duplikate in einer Access Tabelle vermeiden

Hallo,

Ich habe eine MS Access Tabelle erstellt, deren Felder sind:
1) IDHilfstabelle
2) lngAbsatz
3) lngSatz

Die Tabelle soll die Nummer des Absatz und entsprechenden Satz in einem Roman wiedergeben.
Also beispielsweise in der Tabellenansicht:
lngAbsatz 1 lngSatz 1 in der nächsten Zeile
lngAbsatz 1 lngSatz 2 in der nächsten Zeile
lngAbsatz 2 lngSatz 1 usw.

Da es sich um eine Hilfstabelle für eine n:m Beziehung handelt habe ich sowohl das Feld lng Absatz, als auch das Feld lngSatz mit "Yes (Duplicates ok)" indiziert. [Ihr seht ja in meinem Beispiel, dass z.B. Satz 1 sowohl für Absatz eins als auch für Absatz 2 existieren muss und Absatz 1 sowohl für dessen Satz 1, als auch für dessen Satz 2.]

Nun zu meiner Frage: Mir ist aufgefallen, dass es durch diese Indizierung auch zu doppelten Einträgen kommen kann, die dann zwar eine unterschiedliche IDHilfstabelle haben, aber in den entscheidenden zwei anderen Feldern doppelt sind.

Ist es möglich eine Indizierung forzunehmen die aus den zusammengesetzten Feldern lngAbsatz und lngSatz besteht?
Also beispielsweise dass folgende Tabelleneinträge unmöglich wären:

IDHilfstabelle 1 lngAbsatz 1 lng Satz 2
und ID Hilfstabelle 2 lngAbsatz 1 lng Satz 2


Vielen Dank für Eure Hilfe


Antwort schreiben

Antwort 1 von lleopard vom 09.11.2019, 11:14 Options

moin.

nein, dein Vorhaben das direkt in der Tabelle zu indizieren wird so nicht funktionieren.

Außerdem ist das auch nicht sinn einer Tabelle. Die soll ja lediglich Daten aufnehmen. Die Pürfung der Daten auf Korrektheit, Integrität, Redundanz ... erledigt man meistens über Abfragen.

Zitat:

IDHilfstabelle 1 lngAbsatz 1 lng Satz 2
IDHilfstabelle 2 lngAbsatz 1 lng Satz 2


Mal angenommen du hast einen Datensatz doppelt eingegeben, kannst du einfach eine Duplikatabfrage (der Abfrageassist wid dir sagen was du machen mußt) erstellen und dir die doppelten Datensätze anzeigen lassen. Löschen solltest du die dann händisch. Es wird bei dir ja nicht so oft vorkommen.

Gruß leo

Antwort 2 von reclaimyourcity vom 09.11.2019, 11:26 Options

Hi Leo,

Danke für Deine Antwort. Mich wundert dass Du sagst es sei nicht Sinn einer Tabelle Redundanzen zu vermeiden. Auf http://www.me-asal.de/access/17-normalformen.htm steht: "...normalisieren einer Datenbank. Der Zweck ist, doppelte (redundante) Daten zu verhindern." im Abschnitt Tabellen. Deshalb habe ich gedacht man sollte redundante Daten bereits bei dem Tabellendesign möglichst ausschließen.

Gruß, Moritz

Antwort 3 von lleopard vom 09.11.2019, 14:59 Options

hi Moritz

Zitat:
Deshalb habe ich gedacht man sollte redundante Daten bereits bei dem Tabellendesign möglichst ausschließen.


Das ist ja auch richtig. Nur wenn der Anwender doppelte Daten Eingibt, kann das ja durchaus gewollt sein.

Deswegen gibt es ja auch Duplikatabfragen.

Du hast ja auch schon richtig bemerkt, daß jeder Datensatz eine neue ID bekommt. Woher also soll die Datenbank wissen, daß das nicht in deinem Sinne ist?

Da ist also ein wenig mitdenken gefragt.

Mal angenommen du hast dir ein Eingabeformular gebastelt und willst nun die eingegebenen Daten prüfen, dann könnte man die eingegeben Daten zB vor dem Anfügen erst abprüfen.

Solange du aber einfach nur Datensätze erzeugst und jeder eine eigene ID bekommt, kann es auch doppelte Datensätze geben!

Gruß leo

Antwort 4 von reclaimyourcity vom 09.11.2019, 16:18 Options

Ok Leo,

Danke für Deine Antwort. Da ich erst wieder mit Datenbanken beginne wollte ich einfach nochmal nachfragen ob man solche Redundanzen nicht gleich beim Tabellendesign vermeiden kann. Wenns nicht geht, dann geht es halt nicht. Schade...

Ähnliche Themen

bei easycleaner funktioniert Duplikate nicht
zeta  24.01.2007 - 57 Hits -

excel import in access
ichhabeinefrage  14.08.2007 - 268 Hits - 2 Antworten

Access, import Access-Tabellen
KRD  02.09.2007 - 265 Hits - 1 Antwort

Wie kann ich gleiche Werte in einer Tabelle vermeiden?
NochEinGast  14.11.2007 - 81 Hits - 9 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026