Newsgroup: it.comp.appl.access
Titolo: Problema numerazione fatture.

Buongiorno a tutti voi, ho bisogno di risolvere un problema e mi serve
il vostro aiuto indispensabile.
Fino ad ora per le fatture uso una maschera che per la numerazione
utilizza la seguente formula (copiata e leggermente trasformata per il
mio utilizzo dal Sito Comune) inserita nelle proprietà del campo
numeratore al Valore Predefinito.
=Format(IIf(IsNull(DMax("NUMPROGFATTIMED";"FATTIMMED";"NUMPROGFATTIMED
like '???" & "/" & Format(Date();"yy") & "'"));
1;Left(DMax("NUMPROGFATTIMED";"FATTIMMED";"NUMPROGFATTIMED like '???"
& "/" & Format(Date();"yy") & "'");3)+1);"000") & "/" &
Format(Date();"yy")
Il problema nasce ora che ho bisogno che dalla stessa maschera devo
produrre vari tipi di documenti oltre alla fattura immediata e con
numerazioni diverse a seconda del tipo di documento.
La mia  richiesta (e mi potete aiutare solo voi) è quella di
trasformare la formula suscritta in questa maniera;
SE è fattura immediata usa questa formula;
SE è D.D.T. usa quest'altro tipo di formula;
e così via
Secondo me l'ideale sarebbe fare questa operazione in VB ma non riesco
a farlo.
Capisco che per alcuni queste cose sono banalità ma per me sono
importatissime.
Un saluto e grazie a tutti per l'aiuto che riuscirete a darmi.
Lino


Mi par di capire che tu abbia una tabella con un campo numeri di
fattura NUMPROGFATTIMED di tipo testo, così:
1/09
2/09
...
1/10
2/10
...
è una soluzione che sconsiglio: meglio avere un NUMPROGFATTIMED
numerico, con duplicati ammessi, un campo ANNOFATT di testo, e
aggiungerai un campo TIPODOC che contiene il tipo di documento.
Avrai così:
1 - 09 - fatt
2 - 09 - fatt
1 - 09 - ricev
2 - 09 - ricev
1 - 09 - altro
eccetera.
La formula per la numerazione, contenuta in una casella NumFatt della
maschera TuaMaschera, sarà allora la seguente:
=nz(DMax("[NUMPROGFATTIMED]";"FATTIMED";"[ANNOFATT]='" &
Format(Date();"aa") & "' AND [TIPODOC]='" & [Maschere]![TuaMaschera]!
[TipoDocumento] & "'");0)+1
(occhio a virgolette singole e doppie)
La funzione nz() serve a dare il valore che vuoi, in questo caso 0, se
le condizioni non dessero alcun risultato, cosa utilissima quando
dovrai numerare per la prima volta un nuovo tipo di documento, a cui
aggiungi 1 perché vuoi il numero successivo.
La TuaMaschera avrà un campo TipoDocumento, cioè una casella combinata
con l'elenco dei possibili documenti.
Se comunque vuoi mantenere la numerazione nn/aa, basta che la formula
che scrive il record inserisca, nel campo NUMPROGFATTIMED, il valore:
[Maschere]![TuaMaschera]![NumFatt] & "/" & Format(Date();"aa")
ricordandoti di scrivere, nel campo TIPODOC, il valore di [Maschere]!
[TuaMaschera]![TipoDocumento]
Ma in tal caso la formula di NumFatt andrà adattata, rendendola più
simile alla tua.
Fra poche ore partirò. Ho messo una risposta sperando di essere utile,
ma questo NG è pieno di persone ben più capaci di me di dare aiuto.
Ancora per un poco rimango in linea.
Riccardo Baldinotti

 ha scritto nel messaggio 
news:38268fc8-d7b7-4cc2...@x21g2000yqa.googlegroups.com...

Ringrazio subito dopo aver letto la tua risposta ci proverò seguendo i 
consigli lo so che questo è un periodo particolare per queste domande ma se 
non ci riuscirò ne parleremo ancora a fine agosto.
Ciao e buone vacanze (per chi le fa)
Lino Fornaro