Newsgroup: it.comp.appl.access
Titolo: Impostare nuova numerazione a inizio anno

Salve a tutti, 
ho la necessità di creare un automatismo che a ogni inizio anno mi venga impostata la nuova numerazione di inizio anno.
Ho una tabella con il campo NumeroDDT (Campo numerico) e i documenti vengono creati con la numerazione tipo Ultime2CifreAnno+NumeroProgressimo4cifre 
(es: per l'anno 2020 la numerazione sarà 200001-209999, e a inizio 2021 dovrà iniziare da 210001)
Grazie per l'aiuto.
 
Andrea


Guarda, sembra una fesseria, ma per questo tipo di problema ho adottato 
un metodo stupido ma efficiente:
 
 
In primo luogo, nella tabella della contabilità ho un campo relativo 
all'Anno in corso, come anno contabile (e l'ho chiamato "AnnoCont"), che 
viene ricavato con
 
year(date)
 
A questo punto, mi sono creato una semplicissima subroutine:
 
	NumeroDDT=nz(DCount("[chiave della tabella]","tabella dei 
DDT","[AnnoCont]='"& year(date) &"'"),0)+1
 
In pratica ho chiesto al sistema di contarmi quanti DDT sono stati 
elaborati in un determinato anno e ne aggiungo uno.
 
Eventualmente, se vuoi "prenderti la liberta'" di cancellarne qualcuno e 
comunque andare avanti con il progressivo, puoi sostituire la riga 
precedente con:
 
NumeroDDT=nz(DMax("[chiave della tabella]","tabella dei 
DDT","[AnnoCont]='"& year(date) &"'"),0)+1
 
Così facendo il sistema estrapolerà il numero di DDT più alto in un 
determinato anno e lo aumenterà di 1
 
A dire il vero io ho optato per la prima ipotesi, e funziona 
regolarmente sia per i DDT che per i numeri di fattura
 
 
-- 
Carlo POTS
 
-- 
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 


Forse l'esempio da dato una informazione un po' sfalsata. Durante l'anno 2020 le numerazioni sono state create per mezzo di DMax+1 con la numerazione iniziata a inizio anno a partire da 200000, e saranno state emesse circa 4000 documenti, quindi magari al 31/12/2020 l'ultimo documento potrebbe essere stato 204121. Dall'anno successivo vorrei che un automatismo mi andasse a registrare su questa tabella (tramite una query di accodamento) un record che abbia come numero 210000 per fare ripartire la numerazione da 210001 e chiaramente se si verifica il fatto che, se l'ultimo numero registrato inizia con 20 e siamo nell'anno 2021 mi vada a eseguire questa query che mi registra il record con il numero del documento a 210000, altrimenti non deve fare nulla, e questo controllo dovrà farlo anche per gli anni successivi considerando appunto la regola descritta. Spero che tu mi abbia capito meglio ora.
O forse non ho compreso bene io il tuo metodo, ma leggendo l'istruzione non mi pare che possa funzionare nel mio database.
 
Grazie
 
Andrea

Il 10/01/2021 12:27, Andrea Pettenon ha scritto:

se il numero fattura è numerico
questa funzione dovrebbe fare quello che dici
 
Public Function NuovoNumDDT(databolla As Date) As Double
 
NuovoNumDDT = Year(databolla) * 10000 + Nz(DMax("numeroDDT", 
"Tabelladdt", "YEAR(DATADDT)=" & Year(databolla)), 0) + 1
 
End Function
 
 
alla funzione passi la data del ddt per il quale vuoi ottenere il numero
 
BFS
 
 

 
 
come gestisci il caso in cui, esempio i primi giorni del nuovo anno devi 
magari ancora fare fatture per il 2020 ma devi anche gia emettere ddt 
del 2021?
 
personalmente credo avrebbe più senso calcolare sempre il numero 
progressivo in base all'anno della data del documento che si sta 
caricando e non in base all'anno contabile
 
 
BFS
 
 


No, non è numerazione di fatture ma emissione di DDT/CMR e quindi il giorno 1 gennaio devo partire per forza da 210001, non devo mai emettere DDT il giorno dopo per il giorno prima.
 
Andrea


la domanda era per Carlo
ciao

 caricando e non in base all'anno contabile
 
Ma guarda che l'anno contabile me lo ricavo sempre sulla base della data 
fattura o della data DDT, e lo metto in campo suo; mi è molto comodo 
anche in fase di statistiche di gestione.
 
Se io emetto una fattura il 31/12/2020, il sistema mi inserisce, come 
DataFattura 31/12/2020 e come AnnoContabile 2020 (in verità, per una 
questione di creazione di indice, ho anche una data in Alfanumerica tipo 
AAAAMMGG, quindi sarebbe 20201231)
