Newsgroup: it.comp.lang.visual-basic
Titolo: salvare una Data

ciao a tutti.
ho questo problema con le date.
in una text1.text ci scrivo una data: 12/08/1988
ma vorrei salvarla in Access in formato "Data Generica" e cioè con anche
l'ora vicina.
fino ad ora non ci sono riuscito.
chi può aiutarmi ?
ciao e grazie.

 fino ad ora non ci sono riuscito.
Scusa, ma non capisco il problema.
In Access, a quanto ne so, esiste solo il formato Date/Time, che consente di
memorizzare appunto date e ore. Credo che utilizzi il classico formato che
usa anche vb, la parte intera per le date e i decimali per le ore, ma non č
importante.
Il problema sta nel modo di INSERIRE e di VISUALIZZARE le date, non certo
nella memorizzazione interna al DB.
Come fai a dire che non ci mette l'ora? Probabilmente perché nella griglia
di access il campo viene visualizzato come sola data quando l'ora č
00:00:00. Anche vb quando tenti di visualizzare un campo datetime utilizza
una formattazione intrinseca che non visualizza l'ora se č 00:00:00. Cosě
come non visualizza la data quando č 0 (1 gennaio 1900, credo). Perň se si
utilizza una formattazione esplicita con la Format$ o mettendo
esplicitamente dd/mm/yyyy hh:mm:ss anziché "Data Generica" nel formato di
visualizzazione del campo sulla tabella di access, allora tutto va a posto e
si capisce la differenza - troppo spesso fraintesa - fra DATI e
VISUALIZZAZIONE.
--
Ciao, Silv:o)

 ha scritto nel messaggio
news:b44fdf$1se28b$1...@ID-49224.news.dfncis.de...

Innanzitutto grazie per aver risposto.
adesso ti spiego meglio.
visto che devo riempire dei campi tra cui c'č una data di inserimento.
vorrei perň dopo, poter visualizzare certi record ordinandoli per data.
succede che ci possono essere degli inserimenti con la stessa data.
quando poi estraggo tramite una query i record con quella data, non mi
vengono ordinati esattamente nell'ordine in cui sono stati inseriti.
avevo pensato quindi, quando si salva il campo data, di utilizzare il
formato "Data Generica", cosě quando poi faccio l'ordinamento ho anche l'ora
dell'inserimento che mi aiuta ad ordinare.
non dirmi poi di mettere un altro campo con solo l'ora (now()), visto che
dopo, per me, č un problema.
dopo aver formattato il campo data di Access con il formato Data Generica,
pensavo di aver risolto il problema.
invece quando salvo la data, mi appare la data cosě come č stata inserita, e
cioč senza ora.
grazie ancora.

 anche l'ora dell'inserimento che mi aiuta ad ordinare.
Chiariamo una volta per tutte.
NON ESISTE IL FORMATO DATI "DATA GENERICA"
Esiste solo una visualizzazione "Data Generica" che ti mostra il campo come
data nascondendoti l'ora quando è l'ora 0 e il giorno quando è il giorno è
0.
Il problema è, come detto, nell'inserimento.
Come infatti fai notare anche tu: ".. invece quando salvo la data, mi appare
la data così come è stata inserita, e cioè senza ora.". Se tu inserisci solo
il giorno, il db memorizza solo quello. L'ordinamento dipende dagli indici o
da altri criteri che inserisci. L'aggiunta dell'ora devi farla tu.
Torniamo all'esempio della casella di testo. Supponiamo che tu lì ci metta
una data. A questo punto devi aggiungere l'ora e poi salvare. Bisognerebbe
sapere:
1) che ora devi aggiungere.
2) che tecnologia usi per salvare i dati
Per il primo caso supponiamo che l'ora la metti in una variabile strTime,
che imposti leggendola da una textBox o dall'ora di sistema, non lo so.
Per il secondo caso, le cose cambiano se usi recordset (o addirittura
DataControl) oppure comandi SQL di INSERT/UPDATE.
Nel primo caso devi prima comporre la data e trasformarla in Date e poi
memorizzarla nel campo (qualcosa tipo myDateTime = CDate (txtData & " " &
txtOra)); nel caso di stringa SQL devi usare il formato richiesto dal DB,
non ricordo quale sia quello per Access, c'erano i # se non sbaglio, e
comunque è una faq che trovi in miliardi di messaggi su questo ed altri ng.
--
Ciao, Silv:o)

 succede che ci possono essere degli inserimenti con la stessa data.
La data o l'inserisce il programma o l'inserisce l'utente.
Se ti serve la data di inserimento aggiungi un campo data/ora e prima
dell'update ci pianti un rs("data_ora_ins") = Now.
Nell'altro campo ci lasci la data digitata (che potrebbe corrispondere a
CLng(Now) cioè solo la parte giorno-mese-anno senza le ore.
Ciao