Doppelte Datensätze in der Datenbank vermeiden

Moderator: ModerationP

Doppelte Datensätze in der Datenbank vermeiden

Beitragvon pabloesco » 14. Okt 2019, 10:11

Hallo Forum,
Ich stehe grade vor einem Problem in Access, bei dem ich grade nicht weiterkomme. Ich importiere eine Excel - Datei in meine Datenbank. Diese werden anschließend weitergeleitet auf eine weitere Datenbank die ich per ODBC - Verknüpfung eingebunden habe. Ich habe dazu ein Formular erstellt, damit die Daten importiert werden können. Jetzt stehe ich vor dem Problem, das die Daten mehrfach importiert werden könnten und so doppelte Datensätze in meiner Datenbank stehen würden. Wie kann ich das vermeiden ? Gibt es eine Möglichkeit zwei Tabellen miteinander zu vergleichen ?
pabloesco
 

Re: Doppelte Datensätze in der Datenbank vermeiden

Beitragvon Bitsqueezer » 14. Okt 2019, 10:34

Hallo,

zum einen kannst Du einen Unique Index über alle Felder der Tabelle erstellen, das verhindert, daß auf irgendeine Weise doppelte Datensätze entstehen.

Beim Import würde das aber so einfach nur zu einem Abbruch führen.

Also mußt Du einfach beim Import eine zusätzliche Unterabfrage einfügen, die testet, ob der Datensatz bereits existiert. Am simpelsten geht das, indem Du eine Importtabelle ohne Beschränkung verwendest, die nach jedem Import wieder geleert wird (bei Multiuserumgebung mußt Du natürlich eine UserID mit verwenden).

Nach erfolgreichem Import kannst Du diese Tabelle dann mit einem INSERT...SELECT in die echte Tabelle verwenden, bei der als WHERE-Bedingung die o.g. Unterabfrage verwendet wird
WHERE NOT EXISTS (SELECT 1 FROM DeineTabelle AS DT WHERE DT.Feld = I.Feld)

Wobei "I" dann der Alias für die Importtabelle wäre.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7219
Registriert: 21. Jun 2007, 12:17

Re: Doppelte Datensätze in der Datenbank vermeiden

Beitragvon Gast » 14. Okt 2019, 11:48

Importtabelle ohne Beschränkung verwendest, die nach jedem Import wieder geleert wird

Temporäre Daten ohne Not zu erzeugen sollte nicht erste Wahl sein.

Man könnte die Exceltabelle temporär verlinken und dann die passenden Abfragen aufsetzen:
Grundlagen - SQL ist leicht (4) - Aktualisierung einer Tabelle

Der schon genannte eindeutige Index auf die Felderkombination, nach der Duplikate bewertet werden, sollte zusätzlich gesetzt sein. Immerhin könnten Editierungen an der Tabelle auch von anderer Stelle aus vorgenommen werden.
Gast
 


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste