Newsgroup: it.comp.lang.visual-basic
Titolo: Ma la data... come faccio a controllarla da codice?

registroChiam = db.OpenRecordset("SELECT * FROM RegistroChiamate WHERE
registrochiamate.[data appuntamento]= " & Left$(Now(), 10))
questa istruzione mi restituisce un recordset vuoto... ora mi domando, ma se
imposto nel database il layout del campo data appuntamento a "data in
cifre", tale data in che formato viene memorizzata? E, di conseguenza, con
cosa devo effettuare il confronto? hoinserito left$ perchč cosě ricavo solo
la data escludendo l'ora restituita dalla funzione now()

Paolo C. ebbe il coraggio di dire:
 (è solo quoting automatico)
Io ti consiglerei di dare un occhiata al thread che avevo aperto un po'
di tempo fa ricevendo un sacco di risposte interessantissime...
oggetto: MDAC e Date
Data: 19/05/2003
MIk

non usare Now() che come hai detto tu comprende l'ora, ma usa Date()
Metti il # prima di indicare la data, guarda l'esempio sotto.....
Access inverte mese e giorno, quindi....
Dim DataRicerca as Date
DataRicerca=Month(Date) & "/" & Day(date) & "/" & Year(Date)
registroChiam = db.OpenRecordset("SELECT * FROM RegistroChiamate WHERE
registrochiamate.[data appuntamento]= #" & DataRicerca & "#"
good coding!!!
-- 
Damiani Liborio Igor
ig...@igordamiani.it
 - 
soft...@igordamiani.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 Data: 19/05/2003
grazie, ma purtroppo il newsgroup qui mi prota fino a luglio e + indietro
non va... come devo fare per poterlo leggere? Oppure, non so, si potrebbe
ripostare l'intero thread?

 so, si potrebbe ripostare l'intero thread?
Erano più di 60 messaggi....
Se vai direttamente su google nella sezione dei gruppi
lo trovi sicuramente, io l'ho cercato li!
MIk

ma perchč diavolo la data deve essere memorizzata in formato
mm/gg/aaaa?!?!?!?
Misteri.. cmq grazie mille!

ah, guarda, non chiedermelo.....io l'ho scoperto (a parte leggendolo sui
manuali qualche anno fa) creando la query usando l'IDE di access. tu sulla
griglia metti, per dire, la data scritta nel nostro formato, quindi,
31/12/2002.
Poi se ti sposti nella visualizzazione SQL vedi appunto che mese e giorno
sono stati invertiti, e che access ha aggiunto il # prima e dopo di indicare
la data.....
non so esattamente il motivo, č cosě, prendilo per buono!!!


anche io l'ho scoperto cosě...

 registrochiamate.[data appuntamento]= " & Left$(Now(), 10))
Ma quando e' possibile, perche' non fate fare all'SQL il suo lavoro, senza
metterci di mezzo VB?
Se vuoi i record di oggi (non ti mancava un "set" all'inizio?):
Sql="select * from RegistroChiamate where registrochiamate.[data
appuntamento]=Date()"
Set registroChiam = db.OpenRecordset(Sql)
Qualche altra nota: se hai una sola tabella, perche' specificarne il nome
("registrochiamate.") per fare riferimento al campo? Basta il solo nome del
campo! E poi perche' usi dei nomi di campo cosi' logorroici e per di piu'
con spazi, costringendoti ad usare le parentesi?
La tabella la vedi solo tu, quindi se un campo deve tenere la data
dell'appuntamento chiamalo semplicemente "data", cosi' ti eviti quella
"sbrodolata" di sql che diventa un ben piu' semplice:
Sql="select * from RegistroChiamate where data=Date()"
Se vuoi invece controllare da VB quale data selezionare, come ti hanno gia'
detto ricordati che devi invertire giorno e mese, e per fare questo ti basta
creare una volta per tutte una funzione che, data una variabile di tipo
Date, ti restituisce la stringa pronta per l'SQL quindi potresti scrivere:
' In dData c'e' la data di riferimento
Sql="select * from RegistroChiamate where data=" & CampoData(sData)
Questa e' la semplice funzione:
Function CampoData(ByVal Data As Date) As String
   CampoData = "#" & Right("0" & Month(Data), 2) & "/" & Right("0" &
Day(Data), 2) & "/" & Year(Data) & "#"
End Function
-- 
Ciao!
   -DocDoc-
--- Per scrivermi: 
do...@despammed.com
Sei anche tu stanco dei messaggi spam? Usa Terminator, il programma
anti-spam italiano FREEWARE! 
http://www.sertel.net/terminator/