Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: AOT am Juni 30, 2017, 09:29:52

Titel: ID in MSysObjects ändert sich
Beitrag von: AOT am Juni 30, 2017, 09:29:52
Liebes Forum,

ich habe ein eigentlich unmögliches Phänomen. Über VBA greife ich auf die Namen meiner Abfragen und Berichte in der MSysObjects zu. Ich spiele die IDs und Namen der Objekte in eine weitere Tabelle, in der ich dann weitere Informationen zu den Abfragen/Berichten speichern kann. Diese weitere Tabelle wird regelmäßig aktualisiert, wenn Abfragen/Berichte hinzugefügt/gelöscht wurden oder sich ein Name geändert hat.

Nun tritt das eigenartige Phänomen auf, dass sich die ID der Abfragen/Berichte in der MSysObjects ändert, wenn ich z.B. einen Bericht neu erstelle und dann wieder lösche. Dadurch ist die eindeutige Zuordnung der Datensätze in MSysObject zu denen in der weiteren Tabelle nicht mehr möglich.

Klingt eigentlich unglaublich, aber als Beleg die Attachments (Abfrage von ID und Name von Berichten aus der MSysObjects):
- VorLoeschung.jpg zeigt einen Bericht mit Namen aaatest3 mit der ID -2147483482.
- In NachLoeschung.jpg ist der Bericht nicht mehr vorhanden, weil gelöscht, die ID wird aber jetzt für den Bericht "Abschluss" benutzt, der vorher die ID  -2147483481 hatte.

Das kann doch eigentlich nicht sein. Oder begehe ich eine sehr fundamentalen Denkfehler?

Viele Grüße
Jürgen
Titel: Re: ID in MSysObjects ändert sich
Beitrag von: DF6GL am Juni 30, 2017, 09:37:09
Hallo,

der Denkfehler liegt darin, dass Du annimmst, dass sich MS selber strikt an datenbank-technische Grundregeln hält...  ;)

Verzichte auf die ID als "Schlüsselfeld" und benutze Namen und Type als zusammengesetzten Primärschlüssel
Titel: Re: ID in MSysObjects ändert sich
Beitrag von: AOT am Juni 30, 2017, 09:40:44
Lieber Franz,

vielen Dank für die rasend-schnelle Reaktion! Der alternative Weg funktioniert beim Hinzufügen und Löschen von Objekten, aber leider nicht, wenn ich den Namen eines Berichts oder einer Abfrage mal ändere, was selten, aber ab und zu mal vorkommt.

Viele Grüße
Jürgen
Titel: Re: ID in MSysObjects ändert sich
Beitrag von: DF6GL am Juni 30, 2017, 09:47:05
Hallo,

das ist das Gleiche wie bei einer 1:1 Beziehung.  Solche Situationen musst Du dann wohl explizit behandeln.