Newsgroup: it.comp.appl.access
Titolo: Maschera: modifica recordsource non fissa e formattazione  condizionale

Buongiorno a tutto NG,
mi trovo in questa situazione:
maschera -> msc_cstfly
ha due caselle combinate
 1) cbocliente -> scelgo il cliente
 2) cbodata -> scelgo la data
La maschera NON ha origine dati.
Su evento dopo aggiornamento di cbocliente e cbodata, tramite varie
query creo la tabella dalla quale la maschera pescherà i dati.
Private Sub CBOCLIENTE_AfterUpdate()
Forms![Msc_cstfly].Corpo.Visible = False 'devo inserirlo altrimenti
non vedo i prodotti
Forms!Msc_cstfly.RecordSource = ""
...crea tabella con i costi, aggiorna...
...elimina tabelle che non servono...
Forms!Msc_cstfly.RecordSource = "q_smcstfly"
Forms("msc_cstfly").Requery
Forms![Msc_cstfly].Corpo.Visible = True
A questo punto ottengo una maschera con i record contenenti i costi
fissati e i costi ricalcolati, margini fissati e nuovi margini.
La maschera, tramite forrmattazione condizionale al primo colpo mi
mostra:
Il margine fissato in rosso se:
margine fissato < nuovo margine
Il margine fissato in verde se:
margine fissato > nuovo margine
Purtroppo, funziona benissimo solo la prima volta, ma ogni qualvota io
ripopolo la maschera, i dati non sono congruenti, è in rosso ciò che
dovrebbe essere in verde...
DOMANDE:
1) La formattazione condizionale funziona solo quando apro la prima
volta la maschera?
2) Posso forzare l'evento formattazione condizionale (sempre se questo
esiste?)
Grazie a chiunque avrà la pazienza di leggere e la voglia di
rispondere,
Samantha
Devo para

Devo para
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
---------------------------------------------


Ciao Vincenzo, grazie x le dritte di cui sopra (.with, ora risistemo
il codice!!!
Buona serata,
Samantha

 Oppure verde e rosso sono casuali ?
Cambiando i listini dei costi di acquisto, il margine nuovo calcolato
su una base + bassa, oppure + alta, cambia. Quindi sono casuali.
La formattazione con il comando me.recalc funziona a metà.
Mi spiego meglio:
Se MargineVolo è maggiore di MargineSalvato, allora diventa verde
Se MargineVolo è minore di MargineSalvato, allora diventa rosso
Capità però che MargineVolo e MargineSalvato sono uguali.
In questo caso, lui colora di rosso MargineVolo, e di verde
MargineSalvato.
Perchè? Visto che sono uguali?
La cosa avrebbe senso se: Io ho pensato che MargineSalvato, è un
valore che prelevo già salvato, a 3 cifre decimali, mentre per qualche
motivo lui considera MargineVolo come un valore in precisione singola,
e a livello maschera in arrotondamento mi mostra, ad esempio 0,055,
mentre sotto lui ha il numero in 0,054789621564556etc...
Però....  x evitare quanto scritto sopra, margineVolo viene formattato
tramite comando CDBL(FORMAT[VALORE]; "0,000"), perchè con questo tipo
di format lui dovrebbe troncare i valori alla terza cifra decimale
quindi :
 MargineVolo è un valore che calcolo in una query di creazione
tabella.
Il calcolo per ottenere MargineVolo è:
MargineVolo: CDbl(Format(([Base_calcolomargine]*[dist_marg]);"0,000"))
Una volta ottenuto lo salvo in tabella.
Uff.. si capisce qualche cosa?
Buon lavoro,
Samantha

forms!msc_cstfly!cbocliente ?
I puristi inorridiranno, ma giusto per capirci, Me rappresenta sempre
l'oggetto contenitore a cui è associato il codice all'interno del
quale stai operando.
Quindi se lo usi nel codice associato ad un report individua il report
medesimo, se lo usi nel codice associato ad una form, individua
questa.
Dunque non c'è alcuna ambiguità, dato che per fare riferimento ad un
oggetto contenuto per esempio in una form, devi usare espressamente il
suo nome (come nal caso della tua cbocliente), magari con la sintassi
Me.cbocliente


 MargineVolo: CDbl(Format(([Base_calcolomargine]*[dist_marg]);"0,000"))
tronca i decimali a 3 cifre?
Perchè mi mostra in rosso con la formattazione condizionale i campi
sia marginevolo che margine salvato, quando hanno lo stesso prezzo
tipo 0,096 ?
Le condizioni in MargineVolo sono:
Il valore del campo è minore di "MargineSalvato"
Le condizioni in MargineSalvato sono:
Il valore del campo è minore di "MargineVolo"
Perchè?
:D Grazie x la pazienza,
Buon pomeriggio!
Samantha