Newsgroup: it.comp.appl.access
Titolo: bloccare numerazione se già presente

Espongo il problema.
Nella Maschera di inserimento mandati "frmMandati" ho un campo
xIdProgetto (origine IdProgetto della tblMandati), un campo NMandato
(Origine NMandato della tblMandati) ed un campo NDocumento1 (non
Associato).
Sul campo NDocumento1 ho messo come origine
=Nz(DMax("[NMandato]";"[tblMandati]";"[IdProgetto]=[xIdProgetto]");
0)+1
e quindi a seconda del progetto scelto assegna un numero progressivo
che passa al campo NMandato tramite il codice Me!NMandato =
Me.NDocumento1 che ho messo sull'evento su attivato del campo
NMandato.
Il problema nasce quando per un errore si torna su un record già
inserito e ci si sposta sul campo NMandato, che sostituisce il numero
originale con l'ultimo numero mandato+1.
Cosa bisogna cambiare?
Ciao e grazie.
Giuseppe.

 ha scritto nel messaggio 
news:95b6fa92-56cd-4ea3...@z66g2000hsc.googlegroups.com...

Sbagli dove inserisci il codice.
Metti il codice nel campo "valore predefinito" del tuo controllo.
Ciao
-- 
Roberto da Parma 

 ha scritto nel messaggionews:95b6fa92-56cd-4ea3...@z66g2000hsc.googlegroups.com...

Se metto il codice
=Nz(DMax("[NMandato]";"[tblMandati]";"[IdProgetto]=[xIdProgetto]");
0)+1
su predefinito della casella di testo NMandato sul caricamento della
pagina già scrive 1 e non si incrementa di una unità in base al valore
della casella di testo xIdProgetto. Cosa c'è di sbagliato?
Ciao.
Giuseppe.

 ha scritto nel messaggio 
news:91a77fc4-ce73-4a3b...@f63g2000hsf.googlegroups.com...


Prova con
=Nz(DMax("[NMandato]";"[tblMandati]";"[IdProgetto] =" & [xIdProgetto]);
0)+1


 ha scritto nel messaggionews:91a77fc4-ce73-4a3b...@f63g2000hsf.googlegroups.com...

Con questo codice , prima di inserire l'IdProgetto mi da #errore, dopo
non mi dà nessun valore.
La casella di testo xIdProgetto ha come origine IdProgetto della
tabella Mandati. C'è qualcosa che non va.
Ciao.

 ha scritto nel messaggio 
news:d8364c58-b2e4-4859...@v13g2000pro.googlegroups.com...


Allora è per quello che ti da errore...che senso ha la formula 
[IdProgetto]=[xIdProgetto] se un prende il valore dall'altro?
Anzitutto xIdProgetto deve essere un campo della maschera mentre IdProgetto 
un campo della tabella tblMandati.
Poi xIdProgetto deve avere già un valore assegnato se no come filtri?In 
predefinito oppure assegnato su caricamento della maschera
Poi prova anche così...potrebbe essere che il campo se è di tipo testo non 
digerisca l'uguale
=Nz(DMax("[NMandato]";"[tblMandati]";"[IdProgetto] like '" & [xIdProgetto]& 
"'");0)+1


 digerisca l'uguale
Il campo XIdProgetto è un campo numerico e non testo.
Se inserisco  su origine controllo di un campo non asssociato
=Nz(DMax("[NMandato]";"[tblMandati]";"[IdProgetto]=[xIdProgetto]");
0)+1
funziona. Se lo inserisco nel valore predefinito del campo XIdProgetto
no. Se in quest'ultimo su evento attivato scrivo
Me!NMandato = Me!controllononassociato
funziona però se vado in modifica del record e con il tab passo sul
campo NMandato mi cambia il valore.
Allora lo soluzione che ho trovato è quella di mettere su evento
attivato del campo NMandato il seguente codice:
NMandato = IIf(NMandato > 0, [NMandato] + 0, Nz(DMax("[nMandato]",
"[tblMandati]", "[IDProgetto]= " & Forms![frmMandati]![IDProgetto]),
0) + 1)
Ovviamente le caselle di testo IdProgetto e NMandato le ho chiamate
uguale all'origine.
Grazie comunque.
Ciao Roberto.
Giuseppe.

 ha scritto nel messaggio 
news:5b535943-5bfa-4f65...@l33g2000pri.googlegroups.com...





Mmmm....sull'evento attivato è un pò una trappola...cosa succede se ci vado 
dentro per errore cancello esco e poi rientro???


 ha scritto nel messaggionews:5b535943-5bfa-4f65...@l33g2000pri.googlegroups.com...

Lo so potrei attivare l'evento su l'IdProgetto ad esempio e bloccare
il campo NMandato, però se vogliono cambiare proprio il numero del
mandato?
Io utilizzo un software di contabilità della TeamSystem e quando
registro le fatture di acquisto la numerazione progressiva è si
numerata in automatico però è possibile modificare il numero. Penso
che vada bene così, comunque se hai un'alternativa ancora meglio.
Grazie Roberto.
Ciao.

 ha scritto nel messaggio 
news:9bd0346f-0859-4c4f...@t1g2000pra.googlegroups.com...


Ho dato già risposta su un'altro post...
Guarda non visualizzare gli zeri in un contatore, adatta quella formula alle 
tue esigenze...quella può essere inserita come valore predefinito in una 
casella di testo per determinare il numero progressivo (aggiornabile).


 ha scritto nel messaggionews:9bd0346f-0859-4c4f...@t1g2000pra.googlegroups.com...

Roberto, visto che avevo aperto un'altro post simile a questo ma con
il formato casello NDocumento come testo ma senza la condizione del
NProgettto, puoi gentilmente leggerlo e aiutarmi? La numerazione di
tipo testo è 001/08  dove 001 e il numero e 08 l'anno.
L'oggetto del post è;  differenza codice Vba tra caselle di testo in
formato numero e in formato testo.
Ti ringrazio. Ciao.

Scusa avevo dimenticato di firmarmi e  salutarti.
Ciao.


Leggi il post che ti ho detto è proprio quello che cerchi!
