Newsgroup: it.comp.appl.access
Titolo: contatore parziale in base a campo testo

in una tabella dati ho tra i vari, i campi conta e lettera
conta = numerico; lettera = testo
lettera  può essere solo di 1 carattere (A; B; C; D)
mella maschera associata il valore del campo lettera viene assegnato
automaticamente su condizione di un'altro campo
nel campo conta,  vorrei incrementare il numero progressivamente per ogni
lettera e non in generale con la formula
=IIf(DCount("[conta]";"dati")=0;"0000001";Format$(DMax("[conta]";"dati")+1;"0000000"))
quindi es:
campo 1 - lettera - conta
pinco   -    A    - 1
pongo   -    A    - 2
giorgio -    B    - 1
cesare  -    A    - 3
ciccio  -    C    - 1
peppe   -    B    - 2
mi sono spiegato? 
grazie
l.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Vincenzo Turturro 
Certificato Eucip Core Level 
ITA 0000-002299 del 14/05/2007 
--------------------------------------------- 
il sito comune di it.comp.appl.access: 
http://www.sitocomune.com
 
--------------------------------------------- 
risorse Access: 
http://www.accessgroup.it
 
--------------------------------------------- 
Il sito comune di it.comp.as400 
http://www.faq400.com
 
---------------------------------------------

VT @ Work ha scritto:




questo codice lo metto nell'evento "dopo aggiornamento" del controllo
campo lettera? o sbaglio?
luigi


 > On Thu, 20 Sep 2007 10:52:36 +0200, 
onofriolNOTS...@tin.it

Si è corretto l'AfterUpdate del Controllo(Campo Lettera)
Alternativa che io preferisco è il BeforeUpdate di Form se non devi
vedere valorizzato al momento della compilazione.
@Alex

 l.
Credo che questa formula sia inserita nel Valore predefinito del controllo
Conta. Toglila e inserisci il seguente codice sull'evento
"DopoAggiornamento" del controllo lettera:
If DCount("[conta]", "dati", "lettera=" & Chr(39) & Me.Lettera & Chr(39))
= 0 Then
Me.Conta = "0000001"
Else
Me.Conta = Format$(DMax("[conta]", "dati", "lettera=" & Chr(39) &
Me.Lettera & Chr(39)) + 1, "0000000")
End If
--
sv



Vincenzo Turturro 


 sv
provato, ma non mi dà il numero!, non è che dipende dal fatto che il
controlo lettera  è automatico e non viene sfiorato de dal clik ne dal tab?
ho detto una cazzata?
l.


riposto il tuo codice con i nomi precisi dei campi interessati
Private Sub letterac_AfterUpdate()
If DCount("[n_concorso]", "dati", "letterac=" & Chr(39) & Me.letterac &
Chr(39)) = 0 Then
Me.N_concorso = "0000001"
Else
Me.N_concorso = Format$(DMax("[n_concorso]", "dati", "letterac=" & Chr(39)
& Me.letterac & Chr(39)) + 1, "0000000")
End If
End Sub
mi viene un altro dubbio, non è che il non funzionamento dipende dal fatto
che n_concorso sia in formato testo?
se metto formato numerico come avevo detto nel primo post, perde gli zeri
iniziali"


 sv
Aggiornamento:
il codice funziona perfettamente, ma solo se lo accodo al codice che
assegna la lettera al campo letterac esistente su "dopo aggiornamento" del
controllo "concorsi", quindi se metto il codice sul controllo letterac,
non va'!
Grazie dell'aiuto!
a tutti, s'intende!
luigi


Ciao !
Come va ?
Era un po' che mancavi, oppure semplicemente mi sono distratto e non
ti ho notato ?



Vincenzo Turturro 


 >
questo appunto era riferito anche a te!  
sono cosciente che anche il tuo aiuto mi è stato prezioso!


 > sv

E' proprio così. Se il controllo lettera è automatico l'evento
"DopoAggiornamento" non scatta; questo però non lo sapevo. E' chiaro che
dovrai usare un altro controllo. Leggo più avanti che comunque l'hai
risolto.
--
sv


 Ciao !


Effettivamente sono stato un po' latitante... Ho avuto anche i muratori a
casa... :-))


 sv
si!
grazie di nuovo
luigi
