Supportnet / Forum / Datenbanken
Datensatz Schlüsselwert ändern
Frage
Hallo,
Als Primärschlüssel in meiner Datenbank mit vielen Beziehungen habe ich die PersonalNr. Nun habe ich den Fall, dass diese geändert werden muss und das ist nicht so einfach wenn schon Eintragungen in anderen Tabellen bestehen, die in Beziehung stehen.
So habe ich gedacht eine Routine zu schreiben, die das erledigt und auf Knopfdruck im Formular angesprochen wird.
Wie kann ich zum Beispiel ein Recordset kopieren und dieses mit einer anderen PersonalNr neu hinzufügen ?? Danach würde ich das alte dann löschen.
So wie unten könnte ich Wert für Wert übernehmen. Gibt es auch eine Lösung für alle Werte auf einmal? Die PersonalNr muss ich aber irgendwie ändern können.
Gruß Gudrun
strFindPersNrNew = "[PersonalNr] = " & Str(Nz(PersonalNrNew, 0))
Debug.Print strFindPersNrNew
strFindPersNrOld = "[PersonalNr] = " & Str(Nz(PersonalNrOld, 0))
Dim ttab, ttabClone As DAO.Recordset
Set ttab = CurrentDb.OpenRecordset("tblPerson", dbOpenDynaset)
Set ttabClone = CurrentDb.OpenRecordset("tblPerson", dbOpenDynaset)
ttabClone.Clone
ttabClone.FindFirst strFindPersNrOld
With ttab
ttab.FindFirst strFindPersNrNew
If .NoMatch Then
MsgBox "Keine Datensätze gefunden mit " & _
strFindPersNrNew & "."
Else
MsgBox PersonalNrNew & " Schon da "
Exit Sub
End If
.AddNew
!PersonalNr = PersonalNrNew
!NachName = ttabClone!NachName
MsgBox !PersonalNr & " Zur Tabelle Person addiert"
.Update
.Bookmark = .LastModified
ttab.Close
End With
ttabClone.Close
Antwort 1 von MixMax
Wenn du in Access arbeitest, dann kanst du in den Beziehungen eine referentiale integrität einstellen - sprich änderst du den Wert in der Haupttabelle ändern sich auch alle tabellen wo der mit beziehungen dieser art hat.
allerdings mag access es scheinbar nicht wenn es sich um den primary key handelt oder ein Autowert ist. Es geht allerdings mit der indizierung (Ja ohne Dublikate)
allerdings mag access es scheinbar nicht wenn es sich um den primary key handelt oder ein Autowert ist. Es geht allerdings mit der indizierung (Ja ohne Dublikate)
Antwort 2 von Gudrun11
Danke für den Hinweis. Ja ich habe Microsoft Access.
Bei mir ist eben die PersonalNr der Primärschlüssel.
Ich versuche nun mal meine DB umzubauen, und zusätzlich eine anderen Primärschlüssel einzubauen.
Gruß Gudrun
Bei mir ist eben die PersonalNr der Primärschlüssel.
Ich versuche nun mal meine DB umzubauen, und zusätzlich eine anderen Primärschlüssel einzubauen.
Gruß Gudrun