Hallo Andreas
Post by Andreas BruhnIMHO hat bei jedem(?) DBMS eine Tabelle immer eine interne Spalte mit
einem eindeutigen Wert. Auch wenn das nicht durch den Standard
gefordert wird.
Wenn dann der Wert dieser internen Spalte über SQL-Befehle erreichbar
ist, dann können auch die Duplikate gelöscht werden (z.B. in einer
Stored Procedure). Wenn man mit SQL nicht an die Spalte herankommt,
dann sieht es natürlich schlecht aus.
Das mag wohl sein, nur ist diese RowID, oder wie immer Du dieses Feld nennen
willst, in Jet nicht sichtbar/verfügbar. Sicher müsste es sowas geben, damit
Access intern die Datensätze überhaupt vernünftig ansprechen kann, aber
eben, intern - nicht extern in Jet. Dies ist in einigen anderen RDBMS auch
so. Oracle ist hier eher ein Ausnahmefall, wenn ich mich richtig erinnere.
Ein RDBMS verhindert nicht, dass ein DB Design nicht normalisiert ist. Was
der Benutzer zu sehen bekommt und womit er arbeiten kann, ist das
entscheidende. Und wenn der Benutzer mit eindeutigen Zeilennummern arbeiten
will, soll er doch bitte einen PK und z.B. eine Identity Spalte (AutoNumber)
definieren. Wenn allerdings die Daten von einem anderen System (z.B. von
einer Excel Datei) angeliefert werden, kann es eben durchaus solche
Duplikate drin haben, welche ja auch einfach beseitig werden können.
Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org