ACCESS: creare numero di inserimento comprensivo dell'anno

lunedì 24 novembre 2008 - 12.05

steoronca Profilo | Newbie

Buona giornata,

ho il seguente problema che non riesco a risolvere forse qualcuno ha un suggerimento.
Nel mio db fatto con access ho bisogno creare un campo id incrementale per anno che abbia il numero di inserimento / ultime due cifre dell'anno in corso; questo campo serve perché il db deve durare per circa 5 anni e le ricerche devono essere fatte nell'arco dei 5 anni.
Il fomato potrebbe essere questo:

es: 1/08 227/08

e ogni anno la numerazione dovrebbe ricominciare da 1.

Grazie. Ste

Teech Profilo | Expert

Puoi pensare di usare 2 campi separati per Numero e Anno e gestirli insieme come chiave primaria... La gestione dell'incremento devi però farla manualmente. Soluzioni di incremento automatico penso che non esistano in quanto è il campo è incrementale in assoluto per la tabella o la gestione viene demandata allo sviluppatore...
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

steoronca Profilo | Newbie

dunque la tabella principale siu chiama [GESTIONE] il campo in cui devo inserire si chiama [N°]

la riga di istruzioni che ho inserito su dopo uscita è

="" & Format(Date();"""yy""") & "/" & Format(IIf(IsNull(DMax("[N°]";"[GESTIONE]";"[N°] like '" & Format(Date();"""yy""") & "??????'"));1;Right(DMax("[N°]";"[GESTIONE]";"[N°] like '" & Format(Date();"""yy""") & "/??????'");6)+1);"000000")

ma nn funziona!

Teech Profilo | Expert

Devi fare e campi separati:
Tabella: Gestione
Campo: Numero - Numerico
Campo: Anno - Numerico

Quando inserisci il dato devi crearti una procedura che incrementa il Numero e ti assegna Anno... Poi, quando leggi i dati, nella query, crei un campo che ti visualizza i 2 dati aggregati ma puoi ordinare per Anno e quindi per Numero (mettendo il campo come stai facendo tu avrai sicuramente problemi di ordinamento).
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

steoronca Profilo | Newbie

Ciao,
posto la riga corretta che va inserita nella maschera sul campo n°, nella linguetta dati come valore predefinito:

=Format(Date();"yy") & "/" & Format(IIf(IsNull(DMax("[n°]";"[gestione cani]";"[n°] like '" & Format(Date();"yy") & "/????'"));1;Right(DMax("[n°]";"[gestione cani]";"[n°] like '" & Format(Date();"yy") & "/????'");4)+1);"0000")

produce un output aa/0001

Steo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5