[cut]
Ciao Cinzia,
ctrl+alt+canc e riavvio il sistema.
Ho una tabella che contiene date e rispettivi numeri fattura di diversi anni.
Ovviamente all’inizio dell’anno la numerazione parte da 1.
Allora stavo cercando di fare prendere in sede di maschera la numerazione
della fatture in base all’anno in corso quando ne inserisco una nuova.
Ti spiego come :
Estraggo un recordset della mia tabella e assegno a due variabile gli ultimi
valori di numero e data in base all’anno corrente.
Se la differenza tra l’anno della data estratta dal mio recordset e quello
della data corrente è 1 allora sono nell’anno di “sistema” e il numero di
fattura successivo sarà il numero di fattura estratti dal mio recordset +1,
altrimenti sarà il valore massimo della fattura estratto con dmax sul dominio
t_fatture_carico+1.
In questo modo se cambio la data di sistema dovrei riuscire ad inserire una
data con una numerazione dell’anno precedente.
Questa era la mia idea, di seguito ti posto quanto finora fatto :
Dim dbs As Database
Dim rst As DAO.Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("T_fatture_carico_unione", dbOpenTable)
While Not rst.EOF
If DatePart("yyyy", rst("data_fattura")) = DatePart("yyyy", Date) Then
numfatt = rst("numero_fattura")
soloanno = DatePart("yyyy", rst("data_fattura"))
End If
rst.MoveNext
Wend
If DateDiff("yyyy", "#12/31/" & soloanno, "#01/01/" & soloannno - 1) = 1 Then
numero_fattura = numfatt + 1
Else
numero_fattura = DMax("Val(Nz([numero_fattura],'0'))",
"[T_fatture_carico_unione]", "[tipo_contratto]=2") + 1
End If
Sono fermo qua :
If DateDiff("yyyy", "#12/31/" & soloanno, "#01/01/" & soloannno - 1) = 1 Then
Perchè non so come dirgli questa cosa.
Suppongo che non sia il modo più corretto di procedere, ma questo è quello
che ho pensato di fare.
Siccome questo problema sicuramente l’avrai già trattato se hai un’ altra
soluzione sai che la aspetto ben volentieri.
Ciao ti saluto, Sandro.