Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Formato data dd/mm/yy <--> mm/dd/yy

Ciao a tutti!
Leggo la data (31/03/01) da una textbox
1)
    Dim T1 as Date
    T1 = Format(CDate(txtT1.Text), "mm/dd/yy")
    non mi produce T1=03/31/01 ma rimane T1=31/03/01
2)
    Dim T1 as Variant
    T1 = Format(CDate(txtT1.Text), "mm/dd/yy")
    mi produce T1=03/31/01
Cosa mi sfugge?
Hubert




Confondi la rappresentazione (stringa) con il valore vero (binario) di una variabile date.
ciao, hal

 >    non mi produce T1=03/31/01 ma rimane T1=31/03/01


in una stringa e non in una varibile Date. E' cosi?
Esatto !
Per fare tutte le tue elaborazioni interne usi una variabile di tipo date, ma per generare 
la stringa sql devi convertire in stringa, appunto, la variabile date, ma _non_ usare
CStr, perche' fa casino e non sono molto sicuro neanche della Format$ (a causa delle
impostazioni del pannello di controllo).
La strada piu' sicura e', imho, estrarre i valori parziali e comporre la stringa della data.
Es.:
Dim strDataOggi As String
strDataOggi = Day(Date) & "/" & Month(Date) & "/" & Year(Date)
// per formattarla dd/mm/yyyy
strDataOggi = Right$("00" & Day(Date), 2) & "/" & _
                       Right$("00" & Month(Date), 2) & "/" & Year(Date)
In questo modo l' utente puo' configurare il pannello di controllo come gli pare, ma la cosa
non ti tocca piu'.
ciao, hal

 Per fare tutte le tue elaborazioni interne usi una variabile di tipo date,
ma per generare la stringa sql devi convertire in stringa, appunto, la
variabile date, ma _non_ usare CStr, perche' fa casino e non sono molto
sicuro neanche della Format$ (a causa delle impostazioni del pannello di
controllo).
Scusa ma non mi sembra che ci sia relazione fra l'output di Format$ e le
impostazioni del pannello di controllo.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

impostazioni del pannello di controllo.
C'e' se l' output _non_ deve essere in base alle impostazioni del pannello
(p. es. se l' elaborazione viene fatta su una macchina ed il risultato viene
visualizzato su un' altra) oppure se il pannello di controllo e' impostato
alla c.d.c.
ciao, hal

> hal1961:

Mi spiego meglio, allora. In realta` la funzione Format$ puo` essere usata
in due modi rispetto al secondo argomento "formato", che puo` essere o
un'espressione di formato predefinita o definita dall'utente. Nel primo caso
effettivamente contano le impostazioni del pannello di controllo ma nel
secondo no ed e` a questo secondo caso che volevo riferirmi con la mia
osservazione perche' di quello si stava discutendo; e nel caso della
concatenazione in una stringa sql di una data con un formato "forzato"
Format andra` piu` che bene. Per esempio:
    "<...> #" & Format$(dtmData, "mm/dd/yyyy") & "# <...>"
non *deve* sbagliare. O no?


non *deve* sbagliare. O no?
O No.
Dipende infatti dal contesto.
Ho visto codice che falliva per i motivi e le combinazioni di essi piu' vari (anche per il
discorso decimali, ma qui e' OT).
Es. impostazioni db in un modo, s.o. server in un altro e pc client in un altro, db di un tipo
o db di un altro, inserimento dati dell' utente, visualizzazione del recordset in un formato fisso
a prescindere dal s.o. locale, inversione di giorni e mesi con certi win e con altri no.
Alla fine, visto che non mi potevo fidare, ho preferito costruire le stringhe delle date
a manina, cosi' non ci penso piu'.
ciao, hal

 Alla fine, visto che non mi potevo fidare, ho preferito costruire le
stringhe delle date a manina, cosi' non ci penso piu'.
Non mi piace questo discorso, ma non deve piacere a me, dopotutto. Io ho
*bisogno* di tre o quattro punti fermi e quando questi si riducono a uno o
due divento preda dell'ansia.


Esatto !
Maledizione... non ricordo più il nome della funzione SQL che mi ha
suggerito GbC al meeting..., comunque a quanto pare il risultato della
format nell'sql può essere erroneo.
Ciao

due divento preda dell'ansia.
Io invece ho accettato il fatto che, come dice Murphy, le variabili non cambiano,
ma le costanti si', e mi sono modificato in tal senso.
Sara' stato l' essermi trovato a piedi a qualche anno fa, con bimbo appena nato
ed un mare di casini piovuti da qualche rito voodoo che aveva sbagliato bersaglio,
puntando al sottoscritto, ma sono diventato di gomma :)
ciao, hal
P.S. se fai tanto di mancare al prossimo meeting, ti raggiungo e ti spello vivo !

 P.S. se fai tanto di mancare al prossimo meeting, ti raggiungo e ti spello
vivo !
Vedremo.


non potrebbe funzionare come dovrenne in sql?
 |           ^                     BB
  \_________/
In effetti mi č capitato una volta, ma non ci ho fatto caso piů di tanto: ho
impostato le impostazioni internazionali come dd/mm/yyyy (e non dd/mm/yy) e
tutto č andato a posto.
Perň questo sta a indicare che comunque con la format ci si basa su quelle.
Ciao