Newsgroup: it.comp.appl.access
Titolo: aiuto su Cdate(data)

uso questo comando x convertire una data in formato testo in data e quindi
ordinare cronologicamente i record.
vorrei sapere: come faccio a gestire i campi [datarif] null?
ho provato con iif(datarif is null;null;cdate(datarif)) ma si rifiuta di
aprire la maschera, come faccio?
grazie a tutti

 ha scritto nel messaggio
news:hNdtb.29930$hV.11...@news2.tin.it...

Dove hai messo la tua formula?
Prova a vedere se la funzione Nz (vedi help), fa al caso tuo.
Ciao.
--
Francesco G. Rizzoni

 ha scritto nel messaggio
news:Yrltb.24169$9_.9...@news1.tin.it...

la formula è nella quesy su cui è costruita la maschera, ed è posto sulla
maschera in modalità nn visibile
come dovrei usare la funzione NZ nel mio caso?
grazie


ho risolto il problema creando la seguente espressione nella query di
origine della maschera:
Mid([date];4;2) & Left([date];2) & Mid([date];7;2) e ordinando il tutto
senza nessuna conversione...
e senza il problema dei campi null..


Lavorare con le trasformazioni tra date è sempre un pò rognosetto,
Sicuro che ti funzioni anche con anni diversi?
Se il risultato dell'espressione è una stringa, valgono i criteri di
ordinamento per le stringhe e quindi devi mettere anno(4 caratteri) / mese /
giorno se vuoi ottenere ordinamenti validi.
In questo caso è preferibile la funzione
Format([Tuadata]; "aaaa/mm/gg"), ma avrai sempre una stringa da
ritrasformare per utilizzarla come data.
Tornando alla condizione che avevi provato ad impostare (e che non avevo
letto bene), potresti modificarla in:
IIf(IsNull([TuaData]);Null;CDate([DataAlfa]))
Oppure + semplicemente usare la funzione
CVDate([Tuadata])
che non restituisce errore in caso [Tuadata] contenga valore Null.
Se nonostante tutto, aprendo la query ti continuasse a dare errore,
significa che ci sono valori che non rappresentano date valide.
Per controllarli usa la funzione IsDate([TuaData])


 news:w0utb.26668$9_.10...@news1.tin.it...
[CUT]
A proposito, come mai nella tua tabella per un campo data usi una stringa?


 A proposito, come mai nella tua tabella per un campo data usi una stringa?
perchè la tabella principale è collegata ad un altro db la cui struttura non
può essere invariata perchè ripendente da un altro programma...
insomma ho un programma che scarica i dati su un db access e io ne ho
costruito un altro basato su questo ke si aggiorna a seguito
dell'aggiornamento del  primo..
proverò ad usare la funzione CVDate per vedere se funziona..
grazie 1000 per la chiarezza e il suggerimento
Nicola

 Per controllarli usa la funzione IsDate([TuaData])
ho provato la funzione VCdate([Datarif])
funziona alla perfezione, solo che va in tilt nel momento in cui gli imposto
l'ordinamento crescente..
nn ne capisco il motivo..
son dovuto ritornare alla mia funzione tenendo conto dell'ora anche:
Mid([date];7;4) & Mid([date];4;2) & Left([date];2) & Mid([date];12;2) &
Mid([date];15;2
sembra che funzioni alla perfezione...
Nicola


Nelle prove che ho fatto, dava errore quando imposti l'ordinamento proprio
xchč ci sono valori che non rappresentano date valide.
Se togli l'ordinamento e lanci la query dovresti vedere dove ci sono gli
errori.
[CUT]
Nella query puoi aggiungere un campo calcolato con questa formula:
IIf(IsDate([TuaData]);"";"!!!!!!")
Cosě vedrai chiaramente quali sono i record incriminati.
Perbacco! E' una questione di principio!
Senza contare che date non valide potrebbero pregiudicare altre operazioni
fatte nel database.
Ciao
--
Francesco G. Rizzoni

 fatte nel database.
proverň con questa operazione anche se a dire il vero a me la data serve
solo per l'ordinamento cronologico dei dati..
cmq buono a sapersi anche perchč probabilemte avrň a che fare con altri db
con la stessa situazione
ah approposito se volessi creare una query di aggiornamento che mi
sostituisca il /03 con /2003 come la realizzo?
io ci ho provato mettendo */03* ma mi cancellava tutto il campo mettendoci
il valore */2003* come faccio a sostituire automaticamente il valore??
Grazie ancora
Nicola


Se vuoi lasciare il campo come stringa usa la funzione Format, altrimenti se
lo porti al tipo data con CVDate, è solo una questione di formato di
visualizzazione.
