Newsgroup: it.comp.appl.access
Titolo: Gestire il "NULL" in un campo testo

Ciao a tutti ho questa problematica.Ho un istruzione IIF che mi deve
verificare alcune condizioni,quando uno di questi valori e' Null a
volte l'istruzione non visualizza le condizioni.
Per cercare di essere piu' preciso ho impostato un pagamento standard
rappresentato da 5 possibilita' (30/60/90/120/150) ogniuna delle quali
e' rappresentata dal campo "PrimoDiI°stand" - "PrimoDiII°stand" ecc.
Ovviamente do anche la possibilita' di sostituire il pagamento
standard con un inserimento manuale.
Anche gli inserimenti manuali sono 5 e sono rappresentati dal "PrimoDiI
°" - "PrimoDiII°" ecc.
Di seguito vi riporto come esempio la condizione che gestisce il terzo
pag :
N°3pag: Round(IIf([PrimoDiIII°stand]="90" And [PrimoDiIII°pag]="0" And
[PrimoDiN°ric]>0;Null;IIf([PrimoDiIII°pag]="90" And [PrimoDiIII
°stand]="0";[tot]/[PrimoDiN°ric];IIf([PrimoDiIII°stand]="90" And
[PrimoDiDescrizione pagamento effettivo]="Nessuno";[tot]/[PrimoDiN
°ric];IIf([PrimoDiIII°pag]="90" And [PrimoDiDescrizione pagamento
effettivo]<>"Nessuno";[tot]/[PrimoDiN°ric]))));2)
Grazie in anticipo
Dino


Cerca la guia NZ e "elenco valori"
Daniele

 - Mostra testo citato -
Ciao e grazie per la risp.ho gia' provato con Nz ma il risultato non
cambia.
A dir la verita' ho provato come si usa normalmente la funzione cioe'
Nz([Nome campo]) c'e' anche un'altra sintassi????
Grazie
Dino

    
  Round(
	IIf([PrimoDiIII�stand]="90" And [PrimoDiIII�pag]="0" And[PrimoDiN�ric]>0;
		Null;
		IIf([PrimoDiIII�pag]="90" And [PrimoDiIII�stand]="0";
			[tot]/[PrimoDiN�ric];
				IIf([PrimoDiIII�stand]="90" And [PrimoDiDescrizione pagamento effettivo]="Nessuno";
					[tot]/[PrimoDiN�ric];
					IIf([PrimoDiIII�pag]="90" And [PrimoDiDescrizione pagamentoeffettivo]<>"Nessuno";
						[tot]/[PrimoDiN�ric];"QUIMANCAQUALCOSAQUIMANCA" ))));2)
Vedi quimancaqualcosa!!!
Ciao

 Dino
Nz(TuovaloreNullo;"Concosalosostituisci")
 

 - Mostra testo citato -
Ciao a tutti e grazie per la risposta.
ho cercato di riscrivere i vari passaggi per snellire l'istruzione
IIF.Ho riscontrato quanto segue:
1) Quando una delle due variabili e' "Null" io devo avere come
risultato "Null".Ho provato con la funz Nz e funziona solo se scrivo
la parte di istruzione IIF rigurdante questa condizione.Se invece
associo le altre condizioni non funziona.Questo vale anche per le
altre condizioni.
ho paura che sia un problema di sintassi.
Di seguito vi riporto l'istruzione IIF riguardante il pagamento a 60
giorni:
N°2pag: Round(IIf(([PrimoDiII°]="0") And ([PrimoDiII
°stand]="0");Null;IIf(([PrimoDiII°stand]="60") And (Nz([PrimoDiII
°]));Null;IIf(([PrimoDiII°stand]="60") And ([PrimoDiII°pag]="0");[tot]/
[PrimoDiN°ric];IIf(([PrimoDiII°pag]="60") And ([PrimoDiII°stand]="0");
[tot]/[PrimoDiN°ric]))));2)
Grazie in anticipo
Dino



Vedi qui sopra l'ultima if nel caso la condizione � falsa che cosa viene 
restituito?
Dovresti aggiungere ";Null" se vuoi il null


 - Mostra testo citato -
Ciao e grazie per la risposta.A dir la verita' mi stanno succedendo
cose mai successe prima d'ora.Di seguito ti riporto solo questo pezzo
di funzione:
IIf(([PrimoDiII°]="0") And ([PrimoDiII°stand]="0");Null;IIf(([PrimoDiII
°stand]="60") And (Nz([PrimoDiII°]));Null)
Sto facendo delle prove per capire dove e' l'
errore.Incredibile.Se
tolgo le parentesi tonde all' AND la funzione no mi da nessun
risultato pur verificando le condizioni.sE le inserisco a volte lo da
qa volte no!!!!!Secondo te puo' dipendere dalla sintassi e così per
tutta la funzione IIF sopra impostata????
Dino

    
Il problema � semplice: il null � la pecora nera dei dati.  Sei il tuo 
campo PrimodiII o altri contengono null l'intera iif nidificata va a 
farsi friggere.
Un null non � confrontabile con un null. Va convertito. Cmq � davvero 
ardua la tua espressione. Mancano degli nz e delle parentesi messe forse 
fuori luogo
Dovresti usare nz con Nz(Campo; '0')
Ciao

 - Mostra testo citato -
Le parentesi fuori luogo sono una prova (ti riferisci alle parentesi
dei vari AND).Per quanto riguarda gli Nz.Ho provato ha racchiudere
tutti i campi con Nz,ma il ris. non cambia.
Il problema come dici tu e' sicuramente il null.La cosa incredibili e'
che in altre query funziona tutto senza prob.
Sono d'accordo su "Dovresti usare nz con Nz(Campo; '0')" il problema
e' che se converto "campo" da Null a zero (tramite Nz) mi sballa la
formula.
Dino

    
Dovreti crearti una tabella tblTipiDiPagamento ed eseguire un dlookup 
(F1 per la guida).

 - Mostra testo citato -
Ok grazie provo e ci sentiamo domani
Dino