Newsgroup: it.comp.lang.visual-basic
Titolo: [NET]: Date con Access

Ciao,
è sicuramente una cosa banale, ma cercando su MSDN e con Google non ho 
trovato un esempietto chiaro. Con 
VB.NET
 accedo a un db Access già 
esistente. Nessun problema per la connessione, adattatore dati ecc...
Vorrei ora filtrare i record creando una query SQL oppure impostando la 
proprietà filter del controllo bindingsource.
Ho un campo data (datetime) e non riesco a passargli il valore corretto.
Se ho letto bene i vari post anche sotto .NET la query accetta il 
formato #gg/mm/aa#. Però provando con il query builder (visto che in 
run-time mi dava errore) ho notato che mi inverte forzatamente giorno e 
mese e quindi non mi trova i record nel db.
Mi perdo senz'altro qualche conversione... ma sinceramente non ho 
trovato quale.
Grazie a chi mi darà qualche indicazione,
Marco / iw2nzm

Formattalo in formato ISO:
"\#yyyy\-mm\-dd\#"
@Alex

 @Alex
Ottengo il seguente errore:
"Cannot convert entry to valid date/time; TO_DATE function might be 
required."
TO_DATE non riesco a pescarlo da nessuna parte nell'help :(
In sintesi la query SQL è (che poi mi serve solo la clausola WHERE visto 
che corrisponde alla proprietà filter della Binding Source)
SELECT IDOggetto, dataOggetto FROM miaTabella WHERE dataOggetto=???
se uso il formato che hai suggerito tu ricevo quel messaggio di errore.
Grazie,
Marco / iw2nzm

 Ho un campo data (datetime) e non riesco a passargli il valore corretto.
se costruisci una stringa sql, per access il formato e` #mm/dd/yyyy#
se invece intendi un campo di una datatable allora passagli un datetime
valido.
-- 
ciao, hal

 valido.
Si, grazie. Mi confondevo perché in VB6 e DAO passavo il formato 
#dd/mm/yyyy# ora funziona.
Scusa se approfitto per un'altra domanda, ma in MSDN non trovo granché e 
cercando in giro trovo soluzioni opposte a quello che cerco :)
Il campo del database di tipo DateTime contiene data e ora: se volessi 
fare una query che mi restituisca tutti i record che hanno la *data* 
uguale al parametro (quindi senza dover specificare un orario) quale 
strada dovrei seguire?
Pensavo a una funzione di estrazione data, ma trovo solo per SQL Server 
non per una query SQL su un db Access.
Ciao e grazie,
Marco / iw2nzm


CLong(Data)              -> solo la data
(Data - CLong(Data))     -> solo l'ora
Ciao
-- 
Free .Net Reporting Tool - 
http://www.neodatatype.net
 

 (Data - CLong(Data))     -> solo l'ora
CLong non va bene devi usare Fix al suo posto [*]
Ciao.
Mauro
[*] CLong arrotonda all'intero (lungo) più vicino,
per cui dalle 12:00 in poi CLong(Data) restituisce
un numero che corrisponde al giorno successivo 

 (Data - CLong(Data))     -> solo l'ora
Ottimo, ora funziona. Ho però sostituito CLong con CLng.
Ciao e grazie mille,
Marco / iw2nzm

 (Data - CLong(Data))     -> solo l'ora
Ottimo, ora funziona. Ho però sostituito CLong con CLng.


 CLong non va bene devi usare Fix al suo posto [*]
Hai ragione. Ho verificato e il comportamento corretto è con Fix.
Grazie anche a te!
Marco / iw2nzm

 Ottimo, ora funziona. Ho però sostituito CLong con CLng.
Sì, funziona perchè la data_ora che usi è del mattino.
Al pomeriggio non funziona.
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 accorgerebbe del marone anche nei primi 12 giorni del mese.
Riconosco di avere un po' di confusione in testa riguardo le date e i 
vari formati. Mi sto leggendo ora sia MSDN sia parecchi post per cercare 
di chiarirmi un po' :)
Marco / iw2nzm

 chiarirmi un po' :)
La cosa è semplice:
Le variabili di tipo Date, sia in Access che in VB, non hanno formato, 
sono solo valori numerici.
Quando le vuoi gestire attraverso una stringa (ad esempio se le vuoi 
visualizzare, inserire, usare come Where), devi indicare quale formato 
vuoi che venga usato (Format$).
L'importante è avere sempre chiaro quando si sta usando una stringa e 
quando una data, e ogni volta che si passa da una all'altra, usare la 
funzione opportuna.
Sostanzialmente, esistono solo due modalità di passaggio da stringa a 
data e viceversa:
- Format$ e il suo reciproco DateSerial
- CStr e il suo reciproco CDate (che sono quelli che vengono utilizzati 
quando si lascia fare a VB).


 quando si lascia fare a VB).
Grazie della spiegazione!
Marco / iw2nzm

 come dd/mm/yyyy. E' forse solo una questione di visualizzazione?
Sì, assolutamente sì, definitivamente sì.
-- 
Salutoni
Sergio
..Nessun baol esiste.
Non sei mai esistito, Baol, se non nei nostri sogni.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Hai ragione. Ho verificato e il comportamento corretto è con Fix.
Vero, vero :)


 Al pomeriggio non funziona.
Sì, è vero.
Comunque per dirla tutta, con access ho notato che alcuni controlli sulle 
date (rarissimi casi a dire il vero) funzionano se anzichè passare alla 
query la data formattata come stringa passargliela come CDbl() (con il punto 
chiaramente!)


 CDbl() (con il punto chiaramente!)
Se posso autocitarmi...
http://groups.google.it/group/it.comp.lang.visual-basic/msg/d3b70e5558108ec1
Ciao.
Mauro