mekked
Goto Top

Duplizierung und Verschwinden von Datensätzen in Access 2003

Hallo

Ich habe ein großes Problem mit unsere Datenbank

Ich betreue in unserer Abteilung eine Datenbank. Diese hat ca 35.000 Datensätze, worauf ca. 50 User zugreifen.
Die Datenbank ist in Front und Backend aufgeteilt. Für jeden User haben wir eine MDE erstellt, das jeder auf sein Privatlaufwerk liegen hat.

Seit geraumer Zeit haben wir das Problem, dass sich willkürlich irgendwelche Datensätze duplizieren. Was an und für sich nicht so das große Problem währe. Allerdings überschreibt dieser duplizierter Datensatz ein anderen Datensatz.
Und was das komische an der ganzen Sache ist, dass der Datensatz an die stelle des überschriebenen Datensatzes rutscht.

Beispiel:

wir haben 10 Datensätze

1 2 3 4 5 6 7 8 9 10

der Datensatz mit der Neummer 8 dupliziert sich und überschreibt die Nummer 3

1 2 8 4 5 6 7 8 9 10

Das komische an der Sache ist jetzt, dass die Nummerirung eigentlich fortlaufend sein müsste aber in diesem fall bleibt die 8 an der stelle der 3 und kann auch nicht gelöscht werden.
Damit ich den Datensatz löschen kann, muss ich eine Reparatur durchführen.
Dann Rutsch der duplizierte Datensatz an die richtige Stelle

1 2 4 5 6 7 8 8 9 10

Danach kann ich eine der Datensätze löschen.

Ach ja, hätte ich beinahe vergessen, wenn irgendjemand, irgendwas, in eine der duplizierten Datensätze schreibt
zerschiesst er damit die Suchfunktion dieser Datenbank.
Danach erhält jeder der ein Datensatz mit der Suchfunktion sucht, die Meldung: Datensatz gelöscht.
Bis man die Reparatur durchführt, danach geht wieder alles

Wir haben schon alles mögliche probiert, aber wir kommen nicht auf die Ursache.

Leider wurde bei der Erstellung der Datenbank die funktion "keine duplikate erstellen" nicht ausgewählt.
So das es vorkommen kann, bzw auch vorklommt, dass lfd-nr doppelt bzw. dreifach vergeben werden

Wie kann sowas passieren, habts Ihr da ne Ahnung???

Vielen Dank und schöne Grüße
Mekked

Content-ID: 103686

Url: https://administrator.de/contentid/103686

Ausgedruckt am: 25.11.2024 um 22:11 Uhr

Biber
Biber 09.12.2008 um 23:20:53 Uhr
Goto Top
Moin Mekked,

ich würde das Problem zweigleisig angehen, denn eigentlich sind es ja zwei Fehler
  • das "unerklärliche Duplizieren", das Du ergründen willst
  • und der Design-Fehler, dass diese Tabelle gar keinen Primary Key/keine Uniqueness/keinen Eindeutigen Schlüssel hat.

Wobei ich felsenfest davon überzeugt bin, dass diese wundersame Satzverdopplung sich automatisch erledigt hat, wenn ein PK vorhanden ist.

Fragen:
  • Hast Du denn Vollzugriff auf die MDB - kannst Du der Tabelle mal einen PK spendieren auf diese ID?
  • Wie wird denn diese heutige ID ermittelt/generiert? Ein "AutoWert" kann es ja wohl nicht sein...
  • Ist diese heute vorhandenen ID denn Foreign-Key für darunter hängende Child-Tabellen?

[Und auch wenn es überflüssig ist: egal was Du tust, mach es auf einer lokalen Kopie der produktiven MDB...]

Grüße
Biber
Mekked
Mekked 10.12.2008 um 11:02:58 Uhr
Goto Top
Hi Biber,

Danke für die Unterstützung.

1. den Primary Key kann ich nicht setzen, da dies die Einstellung vorraus setzt "Ja (ohne Duplikate)"
wir haben leider seit beginn der Datenbank die Einstellung "ja (Duplikate möglich).
Leider kann ich die Einstellung nicht ändern, da in der Tabelle haufenweise doppelte Nummerierungen auftauchen.
2. Bei der Ermittlung der ID ist AutoWert gesetzt
3. weis leider nicht was Foreign Key ist, Sorry

Ich habe auch schon überlegt ob ich die Datensätze neu nummeriere, so das kein doppelter Wert auftaucht.
Allerdings haben wir das Prolem, dass die gesamte Archivierung der Akten an diese Nummerierung drannhängt.
Was bedeutet, wenn ich die Nummerierungen änder, stimmt unsere Dokumentation der Archivierung nicht mehr.

Grüße
Mekked


PS: kann ggf. die Datenbank zu Verfügung stellen. Natürlich müsste ich die Datenschutzrelevanten Daten rausnehmen.
Mekked
Mekked 12.12.2008 um 08:04:22 Uhr
Goto Top
Guten Morgen,

mir ist da so ne Idee eingefallen die viellecht funktionieren könnte.
Könnte ich vielleicht eine neue Tabelle erstellen, dort den Primary Key setzen und die alte Tabelle auf Archiv umbenennen.
Die ganzen suchfunktionen usw. anpassen und fertig ist das ganze.
Könnte das funktionieren????

Schöne Grüße
Mekked
Biber
Biber 12.12.2008 um 08:43:28 Uhr
Goto Top
Moin Mekked,

wäre aus meiner Sicht der richtige Weg.
Allerdings müsstest Du vorher
  • alle Sätze auf "Duplikate", d.h. doppelt vergebene IDs überprüfen (das ist rein technisch/handwerklich lösbar)
  • und das Nervigere: Du musst dann fachlich mit Deinen Anwendern/Nutzern irgendeine mimik absprechen, nach der Du die doppelten IDs "umbenennen" kannst. Bedeutet, dass dann irgendwelche Datensätze, der vielleicht schon als doppelte ID 4711 in drei Abteilungen in den Akten stehen, nun im nachhinein auf 47111 und 47112 auseinandergezogen werden müssen.

Den zweiten Punkt stelle ich mir aus der Ferne als den Aufwändigeren vor.
Aber zuerst brauchst Du den Überblick, ob zwei Sätze oder 2000 Sätze betroffen sind.

Grüße
Biber