A97 Datensatz kopieren und INDEX beibehalten

19/02/2010 - 15:53 von Peter Kaiser | Report spam
Moin zusammen,

ein Kollege war heute so freundlich und hat einen Datensatz gelöscht,
der nicht gelöscht werden durfte. In der Tabelle wird die ID, in diesem
Fall heisst das Feld INDEX, automatisch vergeben. Der Felddatentyp ist
AutoWert.

Ich könnte diesen Datensatz aus der Sicherungskopie in die
Zwischenablage nehmen und in die Originaltabelle wieder einfügen, oder
anderweitig wiederherstellen. das dürfte nicht das Problem sein.

So weit so gut, aber er bekommt dann eine andere ID. Die ID wird aber in
einem Haufen Queries benutzt, die jetzt diesen Kunden natürlich nicht
mehr auf dem "Zettel" haben.

Gibt es einen Trick, wie ich dem Datensatz eine andere ID
"unterschieben" kann? Das was ich bisher darüber gelesen habe, sagt, es
geht nicht, da AutoWert.

Vielleicht haben die Experten dennoch einen Tip?

MfG
Peter Kaiser
 

Lesen sie die antworten

#1 Karl Donaubauer
19/02/2010 - 16:11 | Warnen spam
Peter Kaiser wrote:
ein Kollege war heute so freundlich und hat einen Datensatz gelöscht,
der nicht gelöscht werden durfte. In der Tabelle wird die ID, in
diesem Fall heisst das Feld INDEX, automatisch vergeben. Der
Felddatentyp ist AutoWert.

Ich könnte diesen Datensatz aus der Sicherungskopie in die
Zwischenablage nehmen und in die Originaltabelle wieder einfügen, oder
anderweitig wiederherstellen. das dürfte nicht das Problem sein.

So weit so gut, aber er bekommt dann eine andere ID. Die ID wird aber
in einem Haufen Queries benutzt, die jetzt diesen Kunden natürlich
nicht mehr auf dem "Zettel" haben.

Gibt es einen Trick, wie ich dem Datensatz eine andere ID
"unterschieben" kann? Das was ich bisher darüber gelesen habe, sagt,
es geht nicht, da AutoWert.

Vielleicht haben die Experten dennoch einen Tip?



Du kannst den Datensatz inherhalb der Tabelle kopieren und
ihm bei diesem Anfügevorgang den gewünschten Wert mitgeben.
Vorgehen:

Erstelle eine Anfügeabfrage mit der Tabelle, Ziel auch dieselbige.
Nimm alle Felder in das Abfragegitter und 2 * das Feld INDEX.

Lösche bei einem der beiden Spalten den Text in der Zeile
"Anfügen an" und schreibe als Kriterium den Wert des Datensatzes,
den er aktuell hat.

Bei der zweiten schreibst du in der Zeile "Feld" den Wert, den du
haben willst.

In SQL sollte das ungefàhr so aussehen.

INSERT INTO Tabelle ( INDEX, Feld2, Feld3 )
SELECT GewünschteZahl, Feld2, Feld3
FROM Tabelle
WHERE INDEX = UngewünschteZahl

Am Schluss löscht du den "falschen" Datensatz.

Servus
Karl
****************
Access-FAQ: http://www.donkarl.com /// http://www.donkarl.com?NEK
.NET-Entwickler-Konferenz für Accessler 27./28.2. + 20./21.3.2010

Ähnliche fragen