Cancellazione e recupero della numerazione progressiva

di il
8 risposte

Cancellazione e recupero della numerazione progressiva

Ciao a tutti,
in una maschera, per avere una numerazione progressiva, ho inserito il seguente codice
------------------------------------------------------------------------------------------
Option Compare Database

Private Sub Form_BeforeInsert(Cancel As Integer)
Me!NumProgr = Nz(DMax("[NumProgr]", "[tEventoPartecipanti]"), 0) + 1
End Sub

------------------------------------------------------------------------------------------
ho la necessità di cancellare dei record e fare in modo che i successivi riprendano la numerazione consecutiva.
come posso agire?
grazie mille, un saluto
Franck70

8 Risposte

  • Re: Cancellazione e recupero della numerazione progressiva

    Forse ci sono varie soluzioni. A me vengono in mente le seguenti:
    A) In VBA crei un ciclo sul recordset, sfruttando DAO.Recordset e imposti record per record incrementando di 1.
    B) Spartana ma efficace, io spesso conservo una tabella con una numerazione progressiva integra. Conto i record da sostituire/aggiornare e faccio un copia/incolla immediato.
  • Re: Cancellazione e recupero della numerazione progressiva

    OsvaldoLaviosa ha scritto:


    Forse ci sono varie soluzioni. A me vengono in mente le seguenti:
    A) In VBA crei un ciclo sul recordset, sfruttando DAO.Recordset e imposti record per record incrementando di 1.
    B) Spartana ma efficace, io spesso conservo una tabella con una numerazione progressiva integra. Conto i record da sostituire/aggiornare e faccio un copia/incolla immediato.
    grazie,
    mi piace la soluzione A ma non mi sento in grado di eseguirla, puoi inviarmi lo script?
    Franck
  • Re: Cancellazione e recupero della numerazione progressiva

    Potresti anche usare una tabella di appoggio dove inserisci l'ID dei records eliminati.
    Poi quando e se decidi di recuperarli la interroghi.
  • Re: Cancellazione e recupero della numerazione progressiva

    Franck70 ha scritto:


    ...mi piace la soluzione A ma non mi sento in grado di eseguirla, puoi inviarmi lo script?
    Premesso e precisato che chiedere codice fatto e finito è contrario al regolamento, non ho capito cosa vorresti fare di preciso.
    Quando cancelli i record ci sono numeri da "recuperare"? e devono essere riutilizzati per i record residui o possono esserlo per i nuovi?
    E' un'esigenza un po' strana, fattibile ma strana, per questo prima vorrei capire bene e per poi suggerire la strada da seguire (se la conosco)
  • Re: Cancellazione e recupero della numerazione progressiva

    Philcattivocarattere ha scritto:


    Franck70 ha scritto:


    ...mi piace la soluzione A ma non mi sento in grado di eseguirla, puoi inviarmi lo script?
    Premesso e precisato che chiedere codice fatto e finito è contrario al regolamento, non ho capito cosa vorresti fare di preciso.
    Quando cancelli i record ci sono numeri da "recuperare"? e devono essere riutilizzati per i record residui o possono esserlo per i nuovi?
    E' un'esigenza un po' strana, fattibile ma strana, per questo prima vorrei capire bene e per poi suggerire la strada da seguire (se la conosco)
    Non era mia intenzione andare contro il regolamento e mi scuso se mi sono espresso male.
    La mia esigenza è quella di poter avere sotto mano una maschera ( tabulare o foglio dati ) e dovendo eliminare qualche record intermedio, fare in modo che il numeratore NumProgr ( non chiave primaria ) ai record successivi venga riassegnato al fine di avere sotto controllo la vera quantità dei record ( ad esempio per raggiungere un certo numero di partecipanti ad un determinato evento ).
    Spero di essermi espresso in modo sufficientemente chiaro e ringraziando ti saluto.
  • Re: Cancellazione e recupero della numerazione progressiva

    Franck70 ha scritto:


    ... il numeratore NumProgr ( non chiave primaria ) ai record successivi venga riassegnato al fine di avere sotto controllo la vera quantità dei record ( ad esempio per raggiungere un certo numero di partecipanti ad un determinato evento )...
    Avere sotto a portata di mano il numero dei partecipanti ad un evento a mio avviso non si ottiene numerando i partecipanti ma contando quanti sono "iscritti". Tutte le maschere, ad esempio, hanno il numero dei record totale, se non vengono nascosti i pulsanti di spostamento tra record.
    Se quello era solo a titolo di esempio, a questo punto viene da chiedersi per cos'altro potrebbe servire quel NumProgr, in altre situazioni, e se è giusto l'uso che intendi farne.
  • Re: Cancellazione e recupero della numerazione progressiva

    Che io sappia un'operazione di questo genere la fai una volta sola perché "ti scoccia/pare brutto" vedere la numerazione progressiva non integra. Se è così la fai (quella sola volta) e passa la paura. Perciò ti ho anche proposto la soluzione B) (praticissima).
    Se invece la vuoi mettere in moto spesso e volentieri...la tal cosa mi inquieta...trovo qualcosa di inutile e/o sbagliato progettualmente/concettualmente/filosoficamente...poi fai tu!

    P.S.: in contemporanea con Philcattivocarattere sembra che diciamo le stesse cose.
  • Re: Cancellazione e recupero della numerazione progressiva

    Ciao.
    Invece di usare un campo reale di tabella non sarebbe meglio usare un progressivo calcolato in una query?
    Gli esempi si buttano sul web... non ultimo questo https://www.iprogrammatori.it/forum-programmazione/access/creare-secondo-contatore-t30856.html?hilit=progressivo#p8573369
Devi accedere o registrarti per scrivere nel forum
8 risposte