Devi usare CDate(Val("dataStringa")) se vuoi continuare a usare CDate.
Perchè, quale altra soluzione suggeriresti?
:(
Come ho detto cercherei di usare solo le date evitando l'uso delle stringhe, comunque questo codice sembra funzionare bene:
Public Sub Button1_Click()
Dim m, g, a As String
Dim dData As Date
m = "05"
g = "28"
a = "2018"
dData = CDate(Val(g &/ m &/ a))
Print dData
dData = Date(m &/ g &/ a)
Print dData
End
:ciao:
...
Oltre a tutto con SQL conviene usare le date e non le stringhe, stavo preparando una esemplificazione di questo argomento con l'aiuto di Tornu ma poi mi ha dato buca ;D
:ciao:
E' vero, chiedo umilmente scusa a Gianluigi :-[, ma come ho avuto modo di dirvi in altre occasioni è un momento
(dura da un pò purtroppo) veramente complicato.
Comunque volevo dare un mio piccolo contributo al problema che spesso vedo sollevare sulla gestione delle date.
Vi assicuro che in tutti i progetti dove ho avuto a che fare con le date non ho mai avuto problemi nel gestirle, niente
di particolare, ma usando semplicemente le risorse messe a disposizione di Gambas, salvo il caso che qualcuno abbia
avuto esigenze particolari che io non ho incontrato, ma da quello che leggo sul Forum i problemi mi sono sempre sembrati
gli stessi. Nel 99% dei casi uso sempre l'oggetto DateBox che trovo comodissimo e non ho mai avuto l'esigenza di usare
per esempio oggetti di tipo testo da dover poi convertire o formattare con tutte le complicazioni che ne conseguono come
leggo spesso, questi i metodi che uso quasi sempre:
Data in un campo testo
Private $DataOdierna As Date
$DataOdierna = Date(Now)
TextLabel.Text = Format($DataOdierna, "dd/mm/yyyy")
Oggetto DateBox
Proprietà Mode impostata su DateOnly
Proprietà ReadOnly impostata su True se non si vuol dare all'utente la possibilità di digitare
la data ma obbligarlo a selezionarla dal calendario che viene visualizzando cliccando sulla piccola icona a
destra, nella maggior parte dei casi uso questa modalità; in caso contrario l'oggetto inserisce automaticamente
il carattere di separazione "/"
Premetto che io uso sempre nei miei progetti il database MySql con i campi data impostati come tipo Date
Inserimento nel DataBase senza nessuna formattazione
insResult["datatest"] = DateBox.Value
Lettura del campo dal DataBase senza nessuna formattazione
DateBox.Value = mioResult!datatest
Niente di che, ma con questi metodi non ho mai avuto "rogne"
Scusate la semplicità terra terra :ciao: