+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Numero progressivo ID di Access

  1. #1
    Pacifico437 non è in linea Scolaretto
    Post
    54

    Numero progressivo ID di Access

    Gent.mi,

    in un programma di Visual Studio con Database di Access, inserisco normalmente le voci con ID di Access Numerico (Ho provato anche con Numerazione Automatica).

    Se elimino una voce dal V.S. regolarmente elimino anche dal Database di Access che è regolare ed ho constatato che vi è un vuoto da un numero al successivo.

    Gradirei se è fattibile che, eliminando la voce dal V.S. dovrebbe modificare anche la numerazione progressiva di Database Access.
    Anticipatamente ringrazio e fiducioso, saluto.
    Domenico.
    Ultima modifica di AntonioG; 10-09-2020 07:46  Motivo: Modificato titolo. Inutile indicare il linguaggio

  2. #2
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,291
    Quote Originariamente inviato da Pacifico437 Visualizza il messaggio
    Gradirei se è fattibile che, eliminando la voce dal V.S. dovrebbe modificare anche la numerazione progressiva di Database Access.
    No, questo non è possibile in genere, e il mio consiglio è quello di non fare assolutamente affidamento al valore dell'ID, tant'è vero che a volte imposto addirittura io un incremento maggiore di 1 o una valorizzazione casuale per le mie applicazioni (anche se non uso Access), proprio perché quel valore non deve essere significativo avendo l'unico scopo di identificare univocamente un record e basta.

    Senza contare che, in presenza di relazioni tra tabelle che sono correlate tramite quell'ID, l'aggiornamento del campo richiederebbe l'adeguamento in cascata del valore correlato in tutte le altre tabelle, con tutte le implicazioni di performance che ne conseguono.

    Se vuoi mantenere un campo con una numerazione in base a una tua logica specifica, devi gestirlo manualmente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,851
    Blogs
    5
    Come ti è stato detto NON devi influire sulla numerazione automatica. Quel numero non deve avere importanza per il tuo programma e deve servire solo per collegare record tra tabelle. Non toccarlo e lascia stare i "buchi" creati.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  4. #4
    Pacifico437 non è in linea Scolaretto
    Post
    54
    Gent.mo Alka,

    ringrazio della disponibilità e mi scuso del ritardo come prevedevo non è fattibile.

    Ho fatto delle prove inserendo manualmente il numero delle voci e la numerazione è lineare.
    Al momento della cancellazione di un record rimane normalmente il vuoto tra i due numeri.

    Gradirei sapere se si potrebbe essendo la numerazione manuale, con il codice, ripristinare la numerazione in Access.

    per AntonioG che ringrazio per il suo gradito intervento.

    Al programma in realizzazione, spesso capita di voler inserire le stesse voci in alcune tabelle e che non accetta.

    Inserendo ID con "Indicizzato" su Si e le tabelle "Indicizzato" su NO non ho problemi.

    In altre parole in Database Access dovrei inserire lo stesso nome in alcune tabelle.

    Ringrazio anticipatamente e fiducioso saluto.
    Domenico.

  5. #5
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,291
    Quote Originariamente inviato da Pacifico437 Visualizza il messaggio
    Ho fatto delle prove inserendo manualmente il numero delle voci e la numerazione è lineare.
    Al momento della cancellazione di un record rimane normalmente il vuoto tra i due numeri.
    Questo direi che è assodato.

    Quote Originariamente inviato da Pacifico437 Visualizza il messaggio
    Gradirei sapere se si potrebbe essendo la numerazione manuale, con il codice, ripristinare la numerazione in Access.
    Ti è stato detto di no, se non aggiungendo un campo dedicato alla numerazione, che non sia generato in automatico, e che può essere gestito come si vuole, manualmente, scrivendo la logica opportuna nel programma e gestendo tutte le casistiche che la costituiscono.

    Quote Originariamente inviato da Pacifico437 Visualizza il messaggio
    Al programma in realizzazione, spesso capita di voler inserire le stesse voci in alcune tabelle e che non accetta.
    Inserendo ID con "Indicizzato" su Si e le tabelle "Indicizzato" su NO non ho problemi.
    Se per "voci" intendiamo campi autoincrementali e contatori, vale quello che è stato già detto.
    Per il resto, campi "indicizzati" servono per velocizzare le ricerche ed evitare i duplicati: se hai valori da ripetere, puoi lasciare il campo "Indicizzato: Sì" ma devi impostare il setting che dice "Consenti duplicati".

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,851
    Blogs
    5
    Pacifico ... forse non hai compreso la spiegazione precedente.

    NON puoi e NON devi gestire tu il campo autoincrementante. NON si recupera il valore eliminato perché sarebbe un disastro per le tabelle relazionate.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi