Come posso impostare il primo valore di AutoNumber in Access?


9

Non è necessario reimpostare il valore AutoNumber come questa domanda , ma preferirei prima impostare il numero su:

1001

Che poi aumenta come al solito:

1001

1002

1003

...

Come faccio a fare questo in Access 2010?


5
Non una risposta, ma un avvertimento: Autonumber non è progettato per essere gestito in questo modo. Ho visto innumerevoli persone provarlo. Non funziona mai perché a volte il DB farà cose strane incrementando (ad esempio, le scritture non riuscite incrementano il numero). Il numero automatico non garantisce che i numeri dei record saranno consecutivi. Anzi, in rari casi non garantirà nemmeno che il numero sarà unico. È molto utile per creare una chiave primaria per una piccola tabella. È un po 'rischioso per i tavoli di grandi dimensioni. È assolutamente terribile per l'utilizzo come un vero campo dati. Lui
Bacon Bits

@BaconBits ... a cosa serve quindi AutoNumber?
James Mertz,

Resto del commento di @ BaconBits: quando vedi articoli come questo quando qualcosa va a forma di pera perché la gente si aspetta che Autonumber sia qualcosa che non lo è. Se è necessario generare numeri in questo modo, scrivere le query e simili nel DB per farlo da soli.
Stack Overflow è morto

Risposte:


16

Sebbene Access non offra questa funzione in modo nativo, può essere ottenuta tramite una query, come la seguente:

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

Questo creerà una singola tabella che si chiama "TableThatIncrements" con una singola colonna, denominata "Id". Ora puoi usare l'editor di tabelle per aggiungere proprietà e / o altre colonne.

Modificare

AUTOINCREMENT(x,y)

in base alle proprie esigenze, dov'è xil numero di incremento iniziale e yil numero con cui incrementare. Quindi AUTOINCREMENT(100,5)produrrà: 100, 105, 110, 115, ecc.

Se si desidera modificare una tabella esistente, utilizzare la seguente query. Assicurarsi che la scheda della tabella specifica sia chiusa in modo che Access possa bloccarla e modificarla.

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

È possibile eseguire una query in Access procedendo come segue:

  1. Vai alla scheda "Crea" e fai clic su "Progettazione query"
    inserisci qui la descrizione dell'immagine

  2. Basta chiudere la finestra che appare che ti chiede di selezionare le tabelle, non ne abbiamo bisogno.

  3. Vai alla scheda "Progettazione" e fai clic sul pulsante con la freccia fino a visualizzare una schermata di input testuale. (Per impostazione predefinita, dice SELECT;).
    inserisci qui la descrizione dell'immagine

  4. Elimina il testo predefinito e incolla la query sopra.

  5. Fai clic su "Esegui".
    inserisci qui la descrizione dell'immagine


buona risposta, ma questo crea una nuova tabella ... o sbaglio? Questo può essere fatto all'interno di una tabella già creata?
James Mertz,

@KronoS Aggiornato la mia risposta
è morto

2

1- Crea tabella1 2- Vai a creare -------> query di progettazione. 3- Chiudi la tabella 4- Vai a SQl dall'alto. 5- Passato questo codice.

ALTER TABLE [TABLE1] ALTER COLUMN [Id] COUNTER (8982,1)


Questa sembra essere la stessa della risposta accettata, tranne per l'uso di una parola chiave diversa (e l'altra è molto meglio formattata). La tua risposta è davvero diversa? Puoi spiegare come? La tua risposta è migliore? Perché? Si prega di non rispondere nei commenti; modifica la tua risposta per renderla più chiara e completa.
Scott,

@Scott In realtà sono un po 'diversi: ALTER COLUMN Id AUTOINCREMENT (1001,1) e ALTER COLUMN [Id] COUNTER (8982,1) vedono la parola AUTOINCREMENT e COUNTER ma funzionano entrambi come previsto
willy wonka

1
@willyw: Giusto; Ho detto "lo stesso ... tranne per l'uso di una parola chiave diversa ".
Scott

@Scott ops hai ragione ... stavo leggendo troppo in fretta scusa ;-)
willy wonka il

1

Questo sito Web ha un modo molto semplice per avviare il numero automatico con qualsiasi numero desideri: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Si crea una query con un'espressione che dice al campo autonumber di cambiare

"Innanzitutto, esegui questa query:

INSERISCI IN tblName (ID) SELEZIONA 999 AS Expr1

Dove tblName è il nome della tabella e ID è il nome del campo AutoNumber.

Quindi, esegui una seconda query per eliminare la riga che hai inserito:

ELIMINA DA tblName DOVE ID = 999;

(In alternativa, puoi semplicemente aprire la tabella ed eliminare manualmente la riga che hai inserito.)

Ora, al record successivo aggiunto alla tabella viene assegnato il valore 1000.

Questo metodo funziona con una nuova tabella o con una tabella il cui AutoNumber non ha ancora raggiunto il valore Seed. (Ovviamente, il campo ID per le righe esistenti non verrà modificato, ma le righe successive inizieranno con 1000.) "


0

Devi ingannare Access perché presume che tu non sia interessato a un numero automatico diverso da quello che fornisce.

Dovrai iniziare la tabella con il numero automatico personalizzato, che richiederà alcune impostazioni. Ma una volta che vai avanti puoi semplicemente continuare ad aggiungere da lì.

Google "access change start autonumber" e troverai diverse opzioni per farlo. La maggior parte si basa sulla creazione di una query di accodamento per modificare il campo.

Creare la prima tabella che contiene il campo del tipo di contatore che si desidera iniziare su un altro numero. Non inserire alcun record. Crea una seconda tabella, con un singolo campo di tipo di numero intero lungo con lo stesso nome del campo contatore nella prima tabella. Crea un record nella seconda tabella inserendo un numero uno in meno del numero sul quale vuoi avviare il contatore nella prima tabella. Creare una query di accodamento, per aggiungere un record nella seconda tabella alla prima tabella ed eseguirlo Eliminare la seconda tabella, eliminare il record aggiunto alla prima tabella e iniziare a immettere i dati.

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

Se non hai voglia di creare una query di accodamento, puoi sempre impostare la tabella e copiare e incollare 1000 righe di dati fittizi da Excel, eliminare i record fino a raggiungere il numero 1001 e proseguire da lì.

AGGIORNAMENTO: aggiunta di spiegazioni per motivi

La ragione per cui l'autonumber è impostato solo a partire da 1 è che il campo autonumber è pensato per essere utilizzato come campo di riferimento interno e, in buona pratica, non dovrebbe essere generalmente utilizzato in alcuna forma pubblicamente visibile. Viene utilizzato nei casi in cui non esiste già un elemento univoco in una determinata tabella per creare una voce univoca mediante la quale è possibile cercare e indicizzare la tabella.


Deve esserci un modo più semplice per farlo ....
James Mertz,

Suppongo che la buona notizia sia che se hai bisogno di creare più tabelle con un tale numero automatico, puoi semplicemente crearne uno, salvarlo in un file di database "modello" e copiarlo in nuovi file di database quando ne hai bisogno.
music2myear,

0

Questo è un thread piuttosto vecchio, ma appare ancora come uno dei primi tre risultati di ricerca di Google.

Uno dei motivi per cui un utente potrebbe voler modificare il valore di un campo di numero automatico è correggere un errore causato dalla modifica del database. Quando un amministratore può voler apportare alcune importanti modifiche a un front-end di un database, tale amministratore può eseguire copie di tutte le tabelle correlate e reindirizzare una copia di sviluppo del front-end a questi back-end. Se le modifiche sono sufficienti, può semplicemente sostituire la copia di produzione del front-end con la sua copia, reindirizzando tutte le tabelle collegate dopo il test.

Nessun problema, vero? Bene, l'incremento del numero automatico rimane con il front-end. Quindi, se il lato di produzione ha appena incrementato il numero automatico di 50 o 500 o 5000 numeri mentre l'amministratore stava lavorando sulla copia, la nuova copia di produzione tenterà di ripetere gli stessi numeri e non sarà in grado di inserire elementi in quei campi, uno alla volta, fino a quando non diventa "in chiaro". Copia 50, 500 o 5000 righe di dati Excel e prova a incollarli. Si verificherà un errore su ogni riga (assicurati di sopprimere ulteriori messaggi quando viene visualizzato), ma il numero automatico aumenterà di tale importo e sei a posto andare di nuovo Se si utilizzano i numeri automatici in questo modo, si consiglia di aumentare i numeri a qualunque sia il db di produzione prima di sovrascriverlo con la copia di sviluppo.

Questo è anche un modo per avviare il tuo autonumber a qualcosa di superiore a 1. Come ai vecchi tempi di impostare il contatore delle visite alla pagina alle 17.479 nella tua homepage di Geocities, quando in realtà è stato visitato solo 16 volte. Da te.


0

Un modo semplice per ottenere qualcosa di simile è avere un campo Autonumber (ad es. "ID") e un secondo campo calcolato (ad es. "ItemID") e inserire la formula "1000+ [ID]" per il campo calcolato. Questo nuovo campo ora traccerà automaticamente il campo Autonumber, ma inizierà da 1001 anziché 1.


0

Credo che potrebbe essere raggiunto il tuo intervallo di incremento personalizzato creando prima una tabella nascosta che manterrà il divario iniziale degli incrementi automatici a partire da zero a tua scelta, ad es. quella tabella manterrà da 0 a 1050 Quindi inizi con incrementi di 1055, 1060, 1065 ecc. Quindi nasconderai questa porzione di dati dalla tabella. Spero che sia di aiuto. Sembra che Access sia stato progettato per apparire inizialmente da zero, poiché sorgeranno conflitti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.