Newsgroup: it.comp.appl.access
Titolo: Numerazione crescente

Ciao a tutti,
Vi espongo un piccolo problemino che possibilmente vorrei risolvere:
Su un controllo di una maschera ho utilizzato l' espressione tratta dal sito
comune "Numerazione crescente per fatture ed altro" funzionante in maniera
piů che impeccabile ma mi č stato chiesto di evitare, nella parte del
conteggio, gli zero inutili.
Esempio: l'espressione crea un numero tipo 03/0001 io invece vorrei che
diventasse 03/1 ... 03/2 ... 03/9999 etc.
Qualcuno di voi sa come posso ottenere questo risultato ?
Grazie a tutti
Ciao
Andrea
--------------------------------
Inviato via 
http://usenet.libero.it

 Andrea
Dall'espressione di Sib:
="E" & Format(Date();"aa") & "/" &
Format(IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like '?" &
Format(Date();"aa") &
"/????'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like '?" &
Format(Date();"aa") & "/????'");4)+1);"0000")
togli gli ultimi quattro zeri con relative virgolette.
Ciao
Galliano

 Galliano
Ho giŕ provato cosě, mi crea solo il primo numero di contatore 03/1 e poi
non non incrementa piů.
Sapete spiegarmi il perchč e come fare.
Grazie e ciao


 Andrea
Mi scuso per la cantonata, ma in effetti l'espressione si basa sulla
valutazione di una stringa lunga quattro caratteri, per cui non si può
prescindere dal formato "0000" che ti garantirà una numerazione corretta
fino a 10.000.  Se vuoi a tutti i costi sbarazzarti degli zeri, puoi, in una
query basata sulla tabella, aggiungere un campo nella cui intestazione
scriverai:
NoZeri: Left([MioContatore];4) &
Val(Right([MioContatore];Len([MioContatore])-4))
visualizzando poi questo campo invece del contatore.
Ciao
Galliano


Dall'espressione di Sib togli 3 zeri lasciandone solo uno
saluti Daniele
---

 Qualcuno di voi sa come posso ottenere questo risultato ?
In teoria:
="E" & Format(Date();"aa") & "/" &
IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like '?" &
Format(Date();"aa") &
"/*'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like '?" &
Format(Date();"aa") & "/*'");4)+1)
In pratica ho verificato che in maniera del tutto casuale il filtro basato
sull'asterisco puo' non funzionare.
Forse la combinazione con lo slash lo rende identificabile come vero e
proprio carattere asterisco piu' che come jolly, ma non ho approfondito.
Prova a metterlo staccato( "/" & "*" piuttosto che "/*")
comunque non concordo sulla inutilita' degli zeri iniziali, d'altro canto
nelle numerazioni fiscali non mi e' mai capitato di vederne senza.
Sib


Ti ringrazio Sib ma sembra proprio non funzionare.
Ho provato sia con l'asterisco staccato piuttosto che unito allo slash ma da
comunque Errore.
Non esiste un'altra soluzione? o un'altro carattere jolly da poter usare?.
Non mi serve per una numerazione fiscale ma per creare un contatore
incrementale che si riazzeri annualmente, esattamente come quello da te
esposto, per ordini da inviare via fax e purtroppo molti zeri possono far
confondere.
Grazie e ciao.


 ha

Scusa ma non avevo visto la tua risposta.
Ottima compromesso funziona bene.
Preferivo modificare l'espressione originaria ma va bene comunque anche
così.
Grazie


 confondere.
Capisco, ma rivedendo meglio la mia soluzione, non puo' funzionare.
avresti potuto usare questa:
="E" & Format(Date();"aa") & "/" & IIf(IsNull(DMax("idc";"Tabella1";"idc
like '?" & Format(Date();"aa") & "/*'"));1;Right(DMax("idc";"Tabella1";"idc
like '?" & Format(Date();"aa") & "/*'");Len(DMax("idc";"Tabella1";"idc like
'?" & Format(Date();"aa") & "/*'"))-4)+1)
La quale tiene conto del fatto che la parte numerica non ha una lunghezza
costante, ma sorge un altro problema, in termini di stringa E03/9 e'
maggiore di E03/10 quindi una volta raggiunto questo valore ti viene
continuamente riproposto.
le alternative sono: separare la parte contatore dal marcatore d'anno oppure
creare una query d'appoggio che tiri fuori la parte numerica:
SELECT Tabella1.IDC, (Val(Right([idc],Len([idc])-4))) AS ValNum
FROM Tabella1
ORDER BY (Val(Right([idc],Len([idc])-4)));
Da chiamare IDMiaTabella.
Poi nella maschera usi:
="E" & Format(Date();"aa") & "/" &
IIf(IsNull(DMax("valnum";"idmiatabella"));1;DMax("valnum";"idmiaTabella")+1)
Sib