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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103686
Url: https://administrator.de/contentid/103686
Ausgedruckt am: 25.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
Moin Mekked,
ich würde das Problem zweigleisig angehen, denn eigentlich sind es ja zwei Fehler
Wobei ich felsenfest davon überzeugt bin, dass diese wundersame Satzverdopplung sich automatisch erledigt hat, wenn ein PK vorhanden ist.
Fragen:
[Und auch wenn es überflüssig ist: egal was Du tust, mach es auf einer lokalen Kopie der produktiven MDB...]
Grüße
Biber
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
Moin Mekked,
wäre aus meiner Sicht der richtige Weg.
Allerdings müsstest Du vorher
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
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