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

Salve,
ringrazio Alessandro Baraldi per l'interessamento che mi ha dimostrato nel
vecchio post di qualche giorno fa riguuardo alla mia necessità di avere un
campo simile al contatore la cui numerazione non fosse 1,2,3,4,+1 ma
00001,00002,00003,+1, ecc.
Ho provato a spulciare sul vostro sito comune e sempre ritornavo alla
numerazione crescente per le fatture o altro.
Vi premetto che non ho gran conoscenza sul creare funzioni in Access, per
questo vi chiedo un piccolo aiuto e pazienza.
Ecco cosa ho fatto:
- Ho cambiato il "tipo dati campo" da contatore a testo
- Ora mi devo creare una funzione del tipo:
    dim Progressivo as string
    Progressivo=Format(DMAX(vedi Help)+1,"000000")
ma in quale campo devo inserirla? In "Formato" o "Maschera di input"?
Ciao

 ha scritto nel
messaggio
news:wQQ4d.19896$B06....@news.edisontel.com...

E l'anno prossimo come fai???
Salva il dato in quel modo e sulla fattura e nella
maschera visualizzi solo il numeratore.
Basta un right(tuonumeratore;4)
MAssimiliano

No, aspetta, io con questo campo ho solo bisogno di avere una numerazione
crescente (niente numerazione fatture divise per anni o altro) simile al
contatore.
Il contatore però aumenta con 1 , 2 , 3 ecc, io ho bisogno che aumenti ma
semplicemente con un formato diverso, del tipo 00001, 00002, ecc.
Ciao

 ha scritto nel
messaggio
news:LkR4d.19907$B06....@news.edisontel.com...

Allora metti nel formato del campo contatore
000000.
Direttamente in tabella
Massimiliano

Questo però è solo un settaggio di visualizzazione.
Questo dato poi lo estraggo dal DB e lo visualizzo su una pagina web, così
facendo la visualizzazione resta cmq 1,2,3.
Ciao

 facendo la visualizzazione resta cmq 1,2,3.
Quando lo estrai ci metti Format(tuocontatore;
"000000")
Altrimenti ci metti un campo calcolato
me.Tucampo = Format(tuocontatore; "000000")
e usi il contatore come vuoi tu
MAssimiliano


In entrambi i casi tu fai riferimento alla visualizzazione dopo averli
estratti.
Non è possibile farlo direttamente nel campo della tabella? in modo che sia
sempre salvato come 00001, 0002, ecc.
Ciao

 ha scritto nel
messaggio
news:o3S4d.19919$B06....@news.edisontel.com...

Hai settato il secondo campo come Testo???
Altrimenti perderai sempre gli zero
Massimiliano

 Ciao
Io farei così:
Dato il campo Progressivo [TESTO] devi ricorrere
alla Funzione DMAX()+1 per incrementarlo, ma ovviamente
trovi difficoltà essendo testo:
 Format(cstr(Clng(DMAX(.....))+1),"000000")
In questo modo mantieni il formato Originale, lo 
converti in Long solo per generare il progressivo
quindi riconverti in stringa e lo Formatti.
Ciao
Alessandro
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao Alessandro,
vorrei impostare il lavoro come mi avevi consigliato qualche giorno fa:
dim Progressivo as string
    Progressivo=Format(DMAX(vedi Help)+1,"000000")
ma non so dove inserire la funzione, in "formato" o in "maschera di input".
Sono una schiappa lo so, vi chiedo solo un piccolo aiuto, sono un neofita.
Saluti

 wrote in message
news:lDS4d.19930$
B06....@news.edisontel.com

Function retProgress() as string
    retProgress=Format(cstr(Clng(DMAX(.....))+1),"000000")
End Function
Metti la funzione in un Modulo e completa la sintassi
nella Funzione DMAX relativamente all'origine dati Tabella
e Campo.
Metti come Valore PRedefinito del Controllo associato al
Progressivo la Funzione:
=retProgress()
Ad ogni aggiunta il controllo richiamerà la funzione calcolando
il progressivo e inserendolo nella tabella al salvataggio.
Spero di averti chiarito meglio.


Scusa Alessandro, vorrei andare passo per passo:
- ora ho creato la funzione retProgress() dentro ad un modulo che ho
chiamato "Incremento"
- l'ho copiata esattamente come mi hai scritto tu, però è sbagliato.
- Come devo cambiare la sintassi?
La mia tabella si chiama "Orders" e il campo che deve incrementarsi
"order_id" ed ora ha come tipo dati "Testo", il DB si chiama "storeDB"
Potrò rileggere solo dopo le 18, scusa per le mie incapacità.
Ciao

 wrote in message
news:dYT4d.19948$
B06....@news.edisontel.com

Fondamentalmente devi leggere l'HELP per capire come usare
la Funzione DMAX è decisamente più istruttivo che fare un
copia/Incolla....!
Nella funzione DMAX devi inserire come ti indica l'HELP
i riferimenti alla Tabella ed al campo, il resto è
come ti dicevo.


ma in quale campo devo inserirla? In "Formato" o "Maschera di input"?
se quanto sopra fa al caso tuo ...
basta inserirla nel "valore predefinito" (Maschera)
ciao, Zef

Ho variato così:
Function retProgress() as string
    retProgress=Format(cstr(Clng(DMAX("order_id";"Orders"))+1),"000000")
End Function
L'ho salvata in un modulo VB come "Incremento".
Vado sul campo order_id e nel "valore predefinito" ho scritto =retProgress()
E a questo punto mi esce tale errore:
Funzione "retProgress" sconusciuta nell'espressione di convalida o nel
valore predefinito di "Orders.order_id"
Che vuol dire?

 Ho variato cosě:

Probabilmente c'č un'errore di estrazione dati, ma mi pare tu abbia
eliminato
la conversione STRINGA che avevo inserito io..... oltretutto serve la
VIRGOLA
non il PUNTO_VIRGOLA
In ogni caso c'č il Debug con la finestra Immediata da usare per vedere se
funziona
senza lanciare la Form.....:
    FinestraImmediata=CTRL+G
            Digita    ?retProgress()
            ...... dovrestio vedere il risultato se funziona
Function retProgress() as string
    retProgress=Format(cstr(Clng(NZ(DMAX("order_id","Orders"))+1),"000000"))
End Function
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 ha scritto nel messaggio
news:cj1m2l$4gr$1...@lacerta.tiscalinet.it...

Probabilmente manca anche Public davanti a Function per poterla richiamare
in una maschera se l'ha messa in un modulo esterno.
Public Function retProgress() as string
retProgress=Format(cstr(Clng(NZ(DMAX("order_id","Orders"))+1),"000000"))
 End Function
Ciao
Cinzia

 Cinzia
Ciao Cinzia.
In realtà l'omissione di Public rende la Funzione Public solo
all'interno del Database ugualmente.
Intendo che non verrebbe vista se chiamata come Metodo
dall'esterno, ma dall'interno non fà differenza.
Ciao-


Ciao Alex,
ho fatto il debug nella finestra immediata del modulo e mi indica un errore
di compilazione su:
Function retProgress() as string
    retProgress=Format(cstr(Clng(NZ(DMAX("order_id","Orders"))+1),"000000"))
End Function
Alla seconda riga (infatti mi resta evidenziata in rosso), eppure io l'ho
ricopiata come mi hai detto

 ha scritto nel messaggio
news:0xa5d.20131$B06....@news.edisontel.com...

Ha ragione lui...... c'è un errore di sintassi....... in realtà ho fatto
un pò di confusione con le PARENTESI....!
Così l'ho provata e funziona.
Function retProgress() As String
    retProgress = Format(CStr(CLng(Nz(DMax("order_id", "Orders")) + 1)),
"000000")


Ciao Alex, ancora qualche problema:
- nel modulo tutto dovrebbe essere a posto e l'ho salvato correttemente
- poi vado ad inserire nel campo "Valore predefinito" nel campo "order_id"
la dicitura "=retProgress()"
- al momento del salvataggio mi esce "funzione retProgress sconosciuta
nell'espressione di convalida o nel valore predefinito di Orders.order_id"
Che problema è ?

 ha scritto nel messaggio
news:p7i5d.20225$B06...@news.edisontel.com...

Guarda quando ti dissi che ho provato e funziona intendevo PROVATO TUTTO
e ti assicuro che da me non dà problemi....!
Il Campo "order_id" nella tua Tabella è di tipo TESTO.....??????????
Del resto deve andare.


Si, certo il campo è Testo, il resto dei "settaggi" del campo sono i
classici (tipo richiesto=NO, indicizzato=SI, ecc.), order_id è anche una
chiave primaria
Io uso Access 2002.
Ma il problema resiste !!
Comunque io la finzione la richiamo nel "Valore predefinito" con
=retProgress()
Non hai proprio idea dove può essere il problema?
Ciao.

 ha scritto nel messaggio
news:9qw5d.20331$B06....@news.edisontel.com...

No perchè ho fatto tutto quanto hai detto per provare e con A2002
funziona.....!!
Non è che la Maschera pesca da una Query o che ci sono altri voncoli
sulla generazione del CODICE come RELAZIONI con altre Tabelle...??
Ciao


La tabella Orders č relazionata con quella  Prodotti e Utenti, ma non
direttamente con il campo order_id.
Ho anche una query "ordini in corso" che pesca solo le righe di ordine con
determinate caratteristiche, quelli aperti appunto.
Questa č l'ultima cosa che ti posso dire, poi non ti rompo piů le
cosiddette.
Ciao

 ha scritto nel messaggio
news:q2x5d.20338$B06....@news.edisontel.com...

Non stai assolutamente sompendo nulla....., solo non saprei
cosa consigliarti.
Come ti dicevo da me funziona, pertanto deve dipendere da
iterazioni con quanto hai nel tuo progetto.
