Newsgroup: it.comp.appl.access
Titolo: Rendere invisibile un controllo in una maschera continua se valore  nullo

Salve a tutti.
Ho una maschera continua, con due controlli "NFattura" e
"NNotaCredito" (entrambi in formato testo) che posiziono sulle stesse
coordinate e che hanno la stessa altezza e lunghezza.
Siccome per ogni record uno dei due è vuoto, voglio far apparire il
controllo che ha il valore e nascondere quello senza.
Ovviamente i due controlli sono posizionati nel corpo della maschera.
Ho inserito questo codice sia su evento "attivato" che "su corrente"
della maschera ma non funziona.
Il codice è:
If NFattura = Null Then
NFattura.Visible = False
NNotaCredito.Visible = True
Else
If NNotaCredito = Null Then
NFattura.Visible = True
NNotaCredito.Visible = False
End If
E' giusto il codice? e su che evento devo inserirlo?
Grazie.
Giuseppe.


No non è possibile come stai ipotizzando in una Form Continua...
Devi ricorrere alla formattazione condizionale e renderlo trasparente
o del colore dello sfondo sia il BackColor che il Forecolor(colore del
testo).
DI fatto è un trucchetto ma non hai scelte...
@Alex

 NNotaCredito.Visible = False
Scusate.
Ciao.

Giuseppe.
In una maschera continua non funziona.....non puoi agire selettivamentesullo stesso controllo di diverse righe (in fondo il controllo č uno solo....)
Puoi provare ad usare la formattazione condizionale sul valore del controllo stesso
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

 Questo articolo e` stato inviato dal sito webhttp://
www.nonsolonews.it
Si infatti non funziona, si impalla.
Puoi darmi qualche informazione in più sulla formattazione del
controllo?
Grazie Fair.
Per Alex. Avevo risposto al mio messaggio senza aver letto il tuo e a
prima vista sembrava funzionasse. Scusa.
Ciao.

Ciao.
Prova così: selezioni una casella nella tua maschera, poi menu FORMATO - FORMATTAZIONE CONDIZIONALE
ti da la formattazione standard (quella che hai creato tu) e poi 3 condizioni da aggiungere. Sulla prima (SOLO sulla prima) selezioni "il campo è attivo", e metti uno sfondo diverso. Chiudi
Hai ottenuto ciò che volevi!!!!
2 sole cose. 
Il campo attivo lo puoi selezionare solo sulla prima condizione
Puoi selezionare e formattare contemporaneamente un tot di campi a patto che la formattazione base (colore, sfondo, carattere...) sia la medesima su tutti, se no s'impalla
That's all!!!!!


Ciao.
Scusa Giuseppe....ho risposto male al messaggio!!
Con la formattazione condizionale puoi rendere un controllo trasparente (quindi invisibile) e renderlo inattivo. Come dice @Alex è un trucco, ma diversamente nun se po' fa.....(almeno in maniera semplice...)



Sto utilizzando per entrambi i controlli la formattazione
condizionale, dal menù formato e poi formattazione condizionale.
Imposto NFattura se uguale a (non metto niente) e spingo il pulsante a
destro attivo e l'esempio diventa grigio; poi aggiungo se diverso da
(e non metto niente) imposto colore nero.
Altrettanto per il controllo NNotaCredito, ma quando riapro la
maschera il primo controllo resta sempre attivo e nasconde quello
sotto. Inoltre se vado a ripetere l'operazione sembra che la
formattazione condizionale non sia stata salvata.
Inoltre, scusate, se ci riesco come faccio a far identica cosa per le
etichette?
Grazie Fair87.
Ciao.
Giuseppe.

Giuseppe.
Ma le etichette non sono nell'intestazione della form?
E poi sicuramente non è stata salvata la formattazione condizionale xchè un valore ci deve essere......tipo 'l'espressione è' (nella combo) = isnull([tuoControllo])=true. Devi riempire per forza il campo condizione con un valore che possa essere risolto in vero/falso, se no non funziona. Per le etichette, nel caso fossero nel corpo e non nell'intestazione, ti dico la verità, non ho mai provato.....ma forse come condizione puoi provare 'l'espressione è' (nella combo) = isnull(tuoControllo)=true, dove il controllo è sempre lo stesso di prima....ma questa non la garantisco......
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it


Per quel che riguarda le caselle di controllo il problema riguarda lo
stato attivo o passivo degli stessi.
Esempio.
Su NFattura ho messo: L'espressione è IsNull([NFattura])=Vero ---->
colore carattere e sfondo bianco (come sfondo del corpo della
maschera)
poi aggiungo una nuova espressione: IsNull([NFattura])=Falso-------> e
se cambio il colore in nero lo cambia sia nella prima espressione che
nella parte superiore nel caso nessun risultato soddisfi  le
condizioni. Se è vero deve diventare inattivo.
Poi ripeto la stessa procedura per il controllo NNotaCredito; tutto
come per NFattura.
Nella maschera ovviamente il controllo che sta sopra è sempre attivo e
nasconde quello sotto anche se la condizione è falso.
Come si fa a rendere inattivi (invisibili) i controlli che non hanno
testo?
Scusa Fair87 sto provando anche nel sitocomune e in siti stranieri.
Cosa sbaglio? Ora grazie alla tua espressione la formattazione
condizionale nei due controlli la trovo salvata.
Attendo.
Ciao.

Ciao.
Forse mi sfugge qcosa......a naso ti dico che la seconda condizione non serve, in quanto la condizione 0 (quella standard) diventa operativa nel caso che le altre condizioni non si verifichino.
Il fatto che tu abbia due controlli sovrapposti complica le cose. Se per ogni controllo specifichi il colore e il testo come lo sfondo della maschera, ti diventano invisibili (alle tue condizioni) ma conservano il 'fuoco'. Se le rendi anche inattive (=non abilitate) non puoi andarci sopra con il 'cursore'. E fin qua mi pare che tu abbia detto che l'hai fatto. Ora, se il problema è che il controllo inattivo (che è sopra) rende 'non usabile' il controllo attivo(che è sotto) mi sa che non puoi fare nulla se non tenerli separati e non sovrapposti. Se invece il problema è che vuoi estendere la formattazione anche ad altri campi, ma non credo sia così, basta applicare la tecnica di cui sopra anche a loro....Poi c'è una cosa che non ho capito.....per caselle di controllo, intendi le caselle di testo o proprio di controllo (=si/no)? Perchà sui boolean puoi fare ben poco anche con la formattazione condizionale.....
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it


Risolto.
In pratica ho fatto così. I due controlli li ho resi nascosti.
Al loro posto ho messo un controllo non associato con la seguente
origine: =[Nfattura]&[NNotaCredito]------> Tutto Ok
per le etichette invece avendo nella tabella TblFatture un campo
IdTipoDocumento collegato al campo IdTipoDocumento della tabella
TblTipoDocumento,
nella query ho inserito il campo NomeDocumento. Quindi nella maschera
continua ho inserito al posto dell'etichette il controllo associato a
NomeDocumento.
Grazie comunque Fair87 e @Alex.
P.S. La formattazione condizionale la trovo un pò macchinosa. Voi no?
Ciao.
Giuseppe.

Giuseppe.
Sono contento che alla fine funzioni come vuoi tu!
Personalmente faccio largo uso della formattazione condizionale (da form, non da codice) e, una volta chiarita la sintassi, la trovo molto veloce ed efficente.....pensa se avessi dovuto ottenere tutto da codice.....
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it