Per spiegarmi meglio controlla che la tua variabile datetime non sia una string.
Per spiegarmi meglio controlla che la tua variabile datetime non sia una string.
adesso la variabile viene direttamente ricavata dalla data selezionata dal calendario. Eppure... nulla.
Se la faccio stampare sullo schermo, mi da la data da questo
gg/mm/aaaa
dove al posto delle letter ci sono i valori
so che il sistema la riconosce come una data perchè io le sottraggo un giorno e non mi da errore, anzi, funziona.
in questo modo:
DateAdd("d", -1, day)
quindi deduco il sistema la riconosca come data
sai aiutarmi?
Ti chiedo anche un'altra cosa... come faccio a sapere se un giorno è già passato oppure no?
Grazie!
Ciao
Il problema nasce dal fatto che il calendar ti restituisce la data nel formato gg/mm/aaaa mentre access gestisce la data nel formato mm/gg/aaaa
Confronti le date con gli operatori < > = per sapere se una data e passata rispetto ad un'altra.
Altrimenti usa la funziona DateDiff
A sto punto ti conviene ricostruirti la data prima di passarla alla query, in questo modo:
' recuperi la data dal calendario
Dim data As DateTime = Calendar1.SelectedDate.ToShortDateString()
' scomponi la data
Dim giorno As Integer = Day(data)
Dim mese As Integer = Month(data)
Dim anno As Integer = Year(data)
' ricomponi la data nel formato americano
Dim data1 As String = (mese & "/" & giorno & "/" & anno)
' poi la passi alla query
"SELECT * FROM tabella Where data = #" & data1 & "#"
in questo modo, però, perdo la possibilità di fare tutte quelle cose quali differenze e confronti.
non si riesce in un altro modo?
[riguardo a messaggio precedente: per dire maggiore o uguale come si fa?]
grazie
Non perdi nessuna possibilità in quanto la conversione della data la fai solo prima di passarla alla query.
Prima puoi applicare qualsiasi funzione perchè la tua variabile è ancora una data.
Il codice che ti ho postato lo usi appena prima di passare la variabile alla query.
Se applichi le funzioni alla varibile data prima di scomporla non hai nessun problema.
Per confrontare due date:
<script language="VB" runat="server">
Sub Page_Load(Source As Object, E As EventArgs)
Dim data, data1 As String
data = "12/07/2002"
data1 = "11/07/2002"
' Restituisce 11/07/2002 è prima di 12/07/2002
If data1 < data Then Response.Write(data1 & " è prima di " & data & "
")
' Restituisce -1
Response.Write(DateDiff("d",data,data1))
End Sub
</script>
Usando le data come Stringhe te le considera nel formato gg/mm/aaaa
ok, grazie mille!
Ciao e Buona Giornata