Newsgroup: it.comp.appl.access
Titolo: Gestire doppia numerazione fattura

Buongiorno NG in primis.
All'interno dell form dove gestisco l'inserimento delle fatture ho una
casella combinata nominata:
OPFTIPFATT
questa ha due valori:   I  o  E
quando apro la maschera sono obbligato a selezionare uno di questi due
valori all'atto dell'iserimento di una nuova fattura, ora vorrei che la
selezione mi pilotasse l'attribuzione di una numerazione priogressiva
che per I sarebbe:
A05/0001
mentre per E dovrebbe essere
B05/0001
dove A e B sono stringhe, 05 è l'anno e poi dopo la barra, parte il
contatore, A e B hanno numerazione propria e non in comune.
Sul SC c'è l'esempio dal quale ottengo questo codice ... ma va bene se
la numerazione è univoca, nel mio caso, non potendolo inserire com
epredefinito e volendo gestire questa numeraizone, cosa scrivo nel
codice?
Grazie anticipatamente per le eventuali risposte.
Buona giornata.
--
MC

 
hai provato a estrarre il numero da incrementare con 
val(right([camponumero],4)) ?
ovvio che dovrai fare una procedura che controlla se sei in A o B, ecc...
se posti il codice vediamo di controllare quello, altrimenti vediamo di 
crearne uno exnovo...
ciao
Nick

Ciao, questo è il codice che avrei usato nel campo VALORE PREDEFINITO
del numero fattura:
="A" & Format(Date();"aa") & "/" & Format(IIf(IsNull(DMax("[]";"[]";"[]
like 'A" & Format(Date();"aa") & "/????'"));1;Right(DMax("[]";"[]";"[]
like 'A" & Format(Date();"aa") & "/????'");4)+1);"0000")
ora A sarà A solo se il campo OPTIPFATT selezionerà I altrimenti
sarà B se selezionerà E.
Il resto seguirà la propria umerazione incrementale ... e come da
esempio ... dovrà ripartire da 1 (0001) al cambio dell'anno.
Intanto grazie e se serve altro ... a disposizione  ;o)
--
MC

MC ha scritto:





Perchè non provi a ottenere questo valore con l'AfterUpdate della Combo,
sostituendo alla stringa "A" il valore della Combo stessa, invece di
utilizzare il Valore Predefinito?
Oppure lasciare il valore di default, secondo il tuo criterio, e dopo
l'aggiornamento della combo, leggere il valore del numero della fattura e
sostituire la "A" con valori a tua scelta. 
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

perchè la numerazione di A e B è si progressiva, ma DEVE essere
distinta.
Saluti,
--
MC

MC ha scritto:

Allora con questa impostazione, penso che devi utilizzare l'evento
AfterUpdate della Combo, assegnando al nr fattura il giusto valore.


 SC
Curiosità personale: perchè in un gestionale fatture ti trovi ad avere due
numerazioni? Per caso dai una numerazione per le fatture ed un'altra per
le note di credito?


MC ha detto: in data 11/07/2005 10.22:

hai provato con VBA?
scusa se ti cambio "la modalità di aggiornamento" ma con VBA mi viene 
meglio percè è più ordinato :)
metti in un modulo genrale (o in quello della maschera, ma secondo me è 
meglio in uno generale)
public function DammiProgressivo (OptS as string, DataXAnno as date) as 
string
dim progrtxt as string
	progrtxt = Opts & right(year(dataxanno), 2) & "/"
	progrtxt = progrtxt & right("0000" & val(right(dmax 
("[campoprogtabella]","nometabella", "left([camponumero], 4) = " & 
progrtxt)),4))+1, 4)		
dammiprogressivo = progrtxt
end function
poi sull'evento "dopo aggiornamento" della tua casella combinata metti
msgbox dammiprogressivo (iif(me.optipfatt ="I", "A","B"), date()))
non sono riuscito a testarla.. e non sono sicuro della clausola where 
della dmax.. però potrebbe essere una strada, che dici??
cmq l'opzione migliore secondo me è di dividere il cap in 3 (opzione, 
anno e numero) così è molto più facele gestirla e interrogarla...
facci sapere
ciao
Nick

perchè il gestionale è fittizio, la gestione avviene in uno studio
apposito, io registro due tipi di fatture: Interne ed Esterne e siccome
el esterne hanno una loro numerazione, qui nasce la mia esigenza.
...
Idee?    ;o)
--
MC

 MC
E se ti crei due Tabelle?? Una per le Interne ed una per le Esterne.
(Stiamo parlando di fatture emesse, cioè verso Clienti, vero?)


Sto provando a risolvere così:
Private Sub opftipfatt_AfterUpdate()
Dim num As Integer
Dim DataXAnno As Date
    If Me.OPFTIPFATT.Value = "I" Then
        DoCmd.OpenForm "OP_NFattInt", acNormal, , , acFormEdit,
acWindowNormal
        num = Forms!op_nfattint!nfattint.Value + 1
        Forms!op_nfattint!nfattint.Value = num
        Me.OPFNFATT.Value = "A" & Format(Year(DataXAnno), "yy") & "/" &
Format(Forms!op_nfattint!nfattint.Value, "0000")
        DoCmd.Close acForm, "OP_NFattInt", acSavePrompt
    Else
        DoCmd.OpenForm "OP_NFattEst", acNormal, , , acFormEdit,
acWindowNormal
        num = Forms!op_nfattest!nfattest.Value + 1
        Forms!op_nfattest!nfattest.Value = num
        Me.OPFNFATT.Value = "B" & Format(Year(DataXAnno), "yy") & "/" &
Format(Forms!op_nfattest!nfattest.Value, "0000")
        DoCmd.Close acForm, "OP_NFattest", acSavePrompt
        Me.OPFNFATT.Value = ""
    End If
    Me.OPFNDRIF.SetFocus
    On Error Resume Next
End Sub
 pare funzionare!"