Cancellazione e recupero della numerazione progressiva

di Anonimizzato23103 il
8 risposte
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

  • 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.
  • 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
  • Potresti anche usare una tabella di appoggio dove inserisci l'ID dei records eliminati.
    Poi quando e se decidi di recuperarli la interroghi.
  • 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)
  • 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.
  • 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.
  • 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.
Devi accedere o registrarti per scrivere nel forum
8 risposte