Evitare incremento campo id

di il
5 risposte

Evitare incremento campo id

Ciao a tutti,
ho una tabella che contiene un campo id a numerazione automatica, per la gestione delle commesse di lavoro.
Questa tabella viene aggiornata con l'inserimento di nuovi record tramite maschera e tutto funziona.
Nella maschera che uso per aggiungere i record, ho inserito un bottone che mi permette di annullare l'inserimento del nuovo record, tramite il comando ‘me.undo’
Ho notato però che, se annullo l'inserimento del record e ne inserisco uno successivo, nella numerazione progressiva viene conteggiato anche il record in realtà mai registrato.
C'è modo di far riprendere la numerazione senza salti?

Grazie mille

5 Risposte

  • Re: Evitare incremento campo id

    Perché questa esigenza…?

    Intanto spiega meglio come gestisci l'annullamento… perche l'UNDO non è sufficiente e va gestito nell'evento corretto.

    In ogni caso la funzione del campo Autoincrementante non è quella di evitare i buchi ma di essere UNIVOCO ed è ovvio che nel momento in cui generi il progressivo questo non possa essere recuperato, prova a ragionare in caso di modalità MULTIUTENTE….

    Se ti da fastidio il buco devi gestire la PK in modo diverso… con tutti i rischi del caso.

    Se invece ti serve un progressivo incrementale gestisci un campo specifico con la funzione di progressivo e non di PK.

  • Re: Evitare incremento campo id

    Sbagli a pensare che l'ID autoincrementante serva a te per identificare un numero di fattura o un codice cliente. È un valore che sta nella tabella per identificare univocamente il record e non deve fare parte dei dati che tratti per il tuo business.

    Se ti serve qualcosa del genere, prevedi un apposito campo che gestisci da codice e lascia libero il motore del db di gestire l'ID 

  • Re: Evitare incremento campo id

    Mi associo a quanto ti è stato risposto.

    La chiave primaria autoincrementale ha scopi differenti dall'uso per il progressivo fattura.

    Non so per Access ma in altri dbms la progressione può essere riavviata per generare numeri che comprano ii buchi nella progressione generati da operazioni di delete. Puoi immaginare cosa succederebbe nel caso fosse usato anche come progressivo fattura.

    In sistemi ulteriormente avanzati non viene nemmeno utilizzato il campo numerico autoinc ma le SEQUENCE.

  • Re: Evitare incremento campo id

    Grazie a tutti per le vostre risposte.
    Mi rendo conto che utilizzare la chiave primaria per identificare un documento non sia la cosa migliore… Il fatto è che ho ripreso in mano una gestione fatta così da molti anni e volevo mantenere intatta la tabella principale. La mia era più che un'esigenza, una curiosità.
    Proverò comunque a seguire il vostro consiglio e rivedere le impostazioni.
    Grazie a tutti e Buona Pasqua

  • Re: Evitare incremento campo id

    Comprendo l'esigenza, ma non solo non  è il modo migliore bensì il peggiore, che ti darà altri problemi in futuro

Devi accedere o registrarti per scrivere nel forum
5 risposte