Supportnet / Forum / Datenbanken
Autowert ändern
Frage
Bin Neueinsteiger,
wie kann man den Autowert manipulieren, d.h. das nicht automatisch mit "1" angefangen wird sondern z.B. mit "4241".
Kann mir jemand helfen
Antwort 1 von Joachim
Hallo erstmal,
diese Änderung des Autowertes ist nicht auf direktem Weg möglich. Als erstes mußt du die Tabellenstruktur kopieren in eine neue Tabelle, KEINE DATEN, nur die Struktur!
Als zweites wird die Struktur der Ausgangstabelle geändert: AUTOWERT--->Zahl, long int.
Jetzt kann der "alte" Autowert auf die gewünschten Werte gesetzt werden; ist die Tabelle noch leer, dann muß ein Dummy-Satz angelegt werden.
Und zum Schluß: Eine neue Anfügeabfrage erstellen, Ausgangstabelle ist die Ursprungstabelle, Ziel ist die neue, leere Tabelle. Ausführen!
So klappts! Habs gleich noch mal bei mir probiert...
Viel Erfolg
Joachim
diese Änderung des Autowertes ist nicht auf direktem Weg möglich. Als erstes mußt du die Tabellenstruktur kopieren in eine neue Tabelle, KEINE DATEN, nur die Struktur!
Als zweites wird die Struktur der Ausgangstabelle geändert: AUTOWERT--->Zahl, long int.
Jetzt kann der "alte" Autowert auf die gewünschten Werte gesetzt werden; ist die Tabelle noch leer, dann muß ein Dummy-Satz angelegt werden.
Und zum Schluß: Eine neue Anfügeabfrage erstellen, Ausgangstabelle ist die Ursprungstabelle, Ziel ist die neue, leere Tabelle. Ausführen!
So klappts! Habs gleich noch mal bei mir probiert...
Viel Erfolg
Joachim
Antwort 2 von ElBobbele
Hallo Joachim!
Es gibt zwei zusätzliche Möglichkeiten, den Autowert zu manipulieren.
DAO-/SQL-Variante:
ADO-Variante:
Der Nachteil bei der DAO-Variante ist, dass auf dem Autowert-Feld keinerlei Beziehungen definiert sein dürfen. Ggfs. müssten sie vorübergehend entfernt und hinterher wieder hinzugefügt werden. Die ADO-Variante kennt diese Einschränkung nicht, hier klappt das bei jedem Autowert-Feld. Ausserdem funktioniert die DAO-Variante erst ab Access 2000.
Bei der ADO-Variante muss ein Verweis auf "ADO DDL and Security" gesetzt werden. Die DAO-Variante braucht den regulären DAO-Verweis.
Gruss
El Bobbele
Es gibt zwei zusätzliche Möglichkeiten, den Autowert zu manipulieren.
DAO-/SQL-Variante:
Public Sub DAO_SetSeed(TableName As String, FieldName As String, NextValue As Long)
CurrentDb.Execute "ALTER TABLE " & TableName & " ALTER COLUMN " & FieldName & " COUNTER(" & NextValue & ");"
End SubADO-Variante:
Public Sub ADO_SetSeed(TableName As String, FieldName As String, NextValue As Long)
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim col As ADOX.Column
Set cat = New ADOX.Catalog
With cat
.ActiveConnection = CurrentProject.Connection
Set tbl = .Tables(TableName)
End With
Set col = tbl.Columns(FieldName)
col.Properties("Seed").Value = NextValue
Set col = Nothing
Set tbl = Nothing
Set cat = Nothing
End SubDer Nachteil bei der DAO-Variante ist, dass auf dem Autowert-Feld keinerlei Beziehungen definiert sein dürfen. Ggfs. müssten sie vorübergehend entfernt und hinterher wieder hinzugefügt werden. Die ADO-Variante kennt diese Einschränkung nicht, hier klappt das bei jedem Autowert-Feld. Ausserdem funktioniert die DAO-Variante erst ab Access 2000.
Bei der ADO-Variante muss ein Verweis auf "ADO DDL and Security" gesetzt werden. Die DAO-Variante braucht den regulären DAO-Verweis.
Gruss
El Bobbele
Antwort 3 von Quarzius
@Joachim,
habs eben probiert. Hat leider nicht geklappt. Bin auch nach der Access Hilfe vorgegangen, aber trotzdem ging es nicht!
Kannst du mir vielleicht eine Datenbank schicken, mit einer Tabelle, die bei 10029 beginnt?
Das wäre echt klasse!!!
Gruß
Quarzius
habs eben probiert. Hat leider nicht geklappt. Bin auch nach der Access Hilfe vorgegangen, aber trotzdem ging es nicht!
Kannst du mir vielleicht eine Datenbank schicken, mit einer Tabelle, die bei 10029 beginnt?
Das wäre echt klasse!!!
Gruß
Quarzius

