Wie stelle ich den ersten Wert von AutoNumber in Access ein?

121206
KronoS

Ich muss den AutoNumber-Wert nicht wie diese Frage zurücksetzen, sondern möchte zuerst die Zahl auf Folgendes setzen:

1001

Was dann normal weitergeht:

1001

1002

1003

...

Wie gehe ich in Access 2010 vor?

8
Keine Antwort, sondern eine Warnung: Autonumber ist nicht dafür gedacht, auf diese Weise verwaltet zu werden. Ich habe unzählige Leute gesehen, die es versuchen. Es * funktioniert * nie *, weil der DB manchmal seltsame Dinge ausführt. Die automatische Nummerierung * garantiert * nicht, dass die Datensatznummern fortlaufend sind. In seltenen Fällen (http://allenbrowne.com/ser-40.html) kann nicht einmal garantiert werden, dass die Anzahl eindeutig ist. Dies ist sehr nützlich, wenn Sie einen Primärschlüssel für eine kleine Tabelle erstellen. Für große Tische ist es ein bisschen riskant. Es ist absolut schrecklich, es als Datenfeld zu verwenden. Er Bacon Bits vor 12 Jahren 5
@ BaconBits ... wofür soll AutoNumber verwendet werden? KronoS vor 12 Jahren 0
Rest von @ BaconBits 'Kommentar: Wenn Sie solche Artikel in Birnenform sehen, sehen Sie solche Artikel, weil die Leute erwarten, dass Autonumber etwas ist, was es nicht ist. Wenn Sie auf diese Weise Zahlen generieren müssen, schreiben Sie die Abfragen und solche in die Datenbank, damit Sie dies selbst richtig machen können. BloodPhilia vor 12 Jahren 0

7 Antworten auf die Frage

12
BloodPhilia

Obwohl Access diese Funktion nicht nativ bietet, kann sie durch eine Abfrage wie die folgende erreicht werden:

CREATE TABLE TableThatIncrements ( Id AUTOINCREMENT(1001,1) ) 

Dadurch wird eine einzelne Tabelle mit dem Namen "TableThatIncrements" mit einer einzelnen Spalte mit dem Namen "Id" erstellt. Sie können jetzt den Tabelleneditor verwenden, um Eigenschaften und / oder andere Spalten hinzuzufügen.

Veränderung

AUTOINCREMENT(x,y) 

Wo xist die anfängliche Inkrementnummer und ydie Nummer, um die Sie mit inkrementieren möchten. So AUTOINCREMENT(100,5)ergibt sich: 100, 105, 110, 115 usw.

Wenn Sie eine vorhandene Tabelle ändern möchten, verwenden Sie die folgende Abfrage. Stellen Sie sicher, dass die Registerkarte der jeweiligen Tabelle geschlossen ist, damit Access sie sperren und ändern kann.

ALTER TABLE TableThatIncrements ALTER COLUMN Id AUTOINCREMENT(1001,1) 

Sie können eine Abfrage in Access ausführen, indem Sie folgendermaßen vorgehen:

  1. Gehen Sie zur Registerkarte "Erstellen" und klicken Sie auf "Abfrageentwurf".
    enter image description here

  2. Schließen Sie einfach das Fenster, in dem Sie zur Auswahl von Tabellen aufgefordert werden. Das brauchen wir nicht.

  3. Gehen Sie zur Registerkarte "Design" und klicken Sie auf die Schaltfläche mit dem Pfeil, bis Sie einen Texteingabebildschirm erhalten. (Standardmäßig heißt es SELECT;).
    enter image description here

  4. Löschen Sie den Standardtext und fügen Sie die obige Abfrage ein.

  5. Klicken Sie auf "Ausführen".
    enter image description here

gute Antwort, aber das schafft eine neue Tabelle ... oder irre ich mich? Kann dies in einer bereits erstellten Tabelle erfolgen? KronoS vor 12 Jahren 0
@KronoS Meine Antwort wurde aktualisiert BloodPhilia vor 12 Jahren 0
1
music2myear

Sie müssen Access überlisten, da davon ausgegangen wird, dass Sie nicht an einer anderen als der von ihm angegebenen automatischen Nummer interessiert sind.

Sie müssen die Tabelle mit der benutzerdefinierten automatischen Nummerierung starten, die einige Einstellungen erfordert. Aber sobald es fertig ist, können Sie einfach von dort aus hinzufügen.

Bei Google "Startänderung für die automatische Nummerierung" werden mehrere Optionen angezeigt. Die meisten sind darauf angewiesen, eine Anfügeabfrage zu erstellen, um das Feld zu ändern.

Erstellen Sie die erste Tabelle, die das Feld des Zählertyps enthält, das Sie mit einer anderen Nummer beginnen möchten. Geben Sie keine Datensätze ein. Erstellen Sie eine zweite Tabelle mit einem einzelnen Feld vom Typ der langen Ganzzahl, das denselben Namen wie das Zählerfeld in der ersten Tabelle hat. Erstellen Sie einen Datensatz in der zweiten Tabelle, indem Sie eine Zahl eingeben, die um 1 kleiner ist als die Nummer, mit der der Zähler in der ersten Tabelle beginnen soll. Erstellen Sie eine Anfügeabfrage, um den einen Datensatz der zweiten Tabelle an die erste Tabelle anzuhängen, und führen Sie sie aus. Löschen Sie die zweite Tabelle, löschen Sie den an die erste Tabelle angefügten Datensatz und beginnen Sie mit der Dateneingabe.

Von MVPS.org: http://access.mvps.org/access/tables/tbl0005.htm

Wenn Sie keine Append-Abfrage erstellen möchten, können Sie immer die Tabelle einrichten und 1000 Zeilen Dummy-Daten aus Excel kopieren und einfügen. Löschen Sie die Datensätze, bis Sie die Nummer 1001 erreichen, und fahren Sie fort.

UPDATE: Erklärung aus Gründen hinzufügen

Der Grund dafür, dass die automatische Nummerierung nur mit 1 beginnen soll, ist, dass das Feld für die automatische Nummerierung als internes Referenzfeld verwendet werden soll und in der Praxis in der Datenbank nicht generell in öffentlich sichtbarer Form verwendet werden sollte. Sie wird in Fällen verwendet, in denen in einer bestimmten Tabelle noch kein eindeutiges Element vorhanden ist, um einen eindeutigen Eintrag zu erstellen, anhand dessen die Tabelle durchsucht und indiziert werden kann.

Es muss einen einfacheren Weg dafür geben ... KronoS vor 12 Jahren 0
Ich nehme an, die gute Nachricht ist, wenn Sie mehrere Tabellen mit einer solchen automatischen Nummer erstellen müssen, können Sie einfach eine erstellen, sie in einer "Template" -Datenbankdatei speichern und sie bei Bedarf in neue Datenbankdateien kopieren. music2myear vor 12 Jahren 0
0
RunsWithScissors

Dies ist ein ziemlich alter Thread, der aber immer noch als Top-3-Google-Suchergebnis angezeigt wird.

Ein Grund, warum ein Benutzer den Wert eines Felds für die automatische Nummerierung ändern möchte, besteht darin, einen durch die Datenbankbearbeitung verursachten Fehler zu korrigieren. Wenn ein Administrator einige wichtige Änderungen an einem Front-End einer Datenbank vornehmen möchte, erstellt dieser Administrator möglicherweise Kopien aller zugehörigen Tabellen und leitet eine Entwicklungskopie des Front-Ends an diese Back-End-Elemente weiter. Wenn die Änderungen ausreichend sind, kann er die Produktionskopie des Frontends durch seine Kopie ersetzen und nach dem Test alle verknüpften Tabellen umleiten.

Kein Problem, richtig? Nun, die Inkrementierung der automatischen Nummerierung bleibt beim Frontend. Wenn also die Produktionsseite die automatische Nummerierung um 50 oder 500 oder 5000 Nummern erhöht hat, während der Administrator an der Kopie gearbeitet hat, dann wird die neue Produktionskopie diese Nummern erneut versuchen und kann keine Elemente in diese Felder eingeben zu einer Zeit, bis es "in den freien Raum" kommt. Kopieren Sie 50, 500 oder 5000 Zeilen mit Excel-Daten, und versuchen Sie, sie einzufügen. In jeder Zeile wird ein Fehler angezeigt (unterdrücken Sie weitere Meldungen, wenn sie auftauchen), aber die automatische Nummerierung erhöht sich um diesen Betrag und Sie sind in Ordnung wieder gehen Wenn Sie Autonummen auf diese Weise verwenden, empfiehlt es sich, die Nummern auf das zu erhöhen, auf dem sich die Produktionsdatenbank befindet, bevor Sie sie mit Ihrer Entwicklungskopie überschreiben.

Dies ist auch ein Weg, um Ihre Autonummer bei etwas höher als 1 zu beginnen. Wie in früheren Tagen, als Sie den Seitenzähler auf 17.479 auf Ihrer Geocities-Homepage eingestellt haben, wurde er tatsächlich nur 16-mal besucht. Von dir.

0
Brent

Eine einfache Möglichkeit, etwas Ähnliches zu erreichen, besteht darin, ein Autonumber-Feld (z. B. "ID") und ein zweites berechnetes Feld (z. B. "ItemID") zu haben und die Formel "1000+ [ID]" für das berechnete Feld einzugeben. Dieses neue Feld verfolgt nun automatisch das Feld für die automatische Nummerierung, beginnt jedoch bei 1001 statt 1.

0
ssurjie

Ich glaube, dass Sie Ihren benutzerdefinierten Inkrementierungsbereich erreichen können, indem Sie zunächst eine verborgene Tabelle erstellen, die die anfängliche Lücke der automatischen Inkremente von null bis zu Ihrer Wahl hält, z. In dieser Tabelle werden die Werte 0 bis 1050 beibehalten. Dann beginnen Sie mit den Schritten 1055, 1060, 1065 usw. Sie werden dann diesen Teil der Daten aus der Tabelle ausblenden. Hoffe das hilft. Es sieht so aus, als ob Access ursprünglich von Null aus betrachtet werden sollte, da Konflikte auftreten können.

0
George

Diese Website bietet eine sehr einfache Möglichkeit, Ihre Autonummer mit der gewünschten Nummer zu beginnen: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Sie erstellen eine Abfrage mit einem Ausdruck, der das Feld für die automatische Nummerierung anweist

"Führen Sie zuerst diese Abfrage aus:

INSERT INTO Tabellenname (ID) SELECT 999 AS Ausdruck1

Dabei steht tblName für den Tabellennamen und ID für den Namen des Felds AutoNumber.

Führen Sie dann eine zweite Abfrage aus, um die eingefügte Zeile zu löschen:

DELETE FROM tblName WHERE ID = 999;

(Alternativ können Sie die Tabelle einfach öffnen und die eingefügte Zeile manuell löschen.)

Dem nächsten Datensatz, der zur Tabelle hinzugefügt wird, wird nun der Wert 1000 zugewiesen.

Diese Methode funktioniert mit einer neuen Tabelle oder mit einer Tabelle, deren AutoNumber den Seed-Wert noch nicht erreicht hat. (Natürlich wird das ID-Feld für vorhandene Zeilen nicht geändert, aber nachfolgende Zeilen beginnen mit 1000.) "

0
muhammad

1- Erstellen Sie table1 2- Gehen Sie zum Erstellen einer -------> Design-Abfrage. 3- Schließen Sie die Tabelle. 4- Gehen Sie von oben zu SQl. 5- Nach diesem Code.

ALTER TABLE [TABLE1] ALTER SPALTE [Id] ZÄHLER (8982,1)

Dies scheint mit der akzeptierten Antwort identisch zu sein, abgesehen von der Verwendung eines anderen Schlüsselworts (und das andere ist * wesentlich * besser formatiert). Ist deine Antwort wirklich anders? Kannst du erklären wie? Ist deine Antwort besser? Warum? Bitte antworten Sie nicht in Kommentaren. Bearbeiten Sie Ihre Antwort, um sie klarer und vollständiger zu machen. Scott vor 5 Jahren 0