PDA

View Full Version : [VB] Quale formato per le Date in Access ???


race2
24-06-2002, 00:11
su VB.NET:


Public conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0.; Data Source=C:\MyDB.mdb; User ID=Admin; Password=;")



Dim Dat As Date = DateTimePiker1.Value
Dim Data As String = Dat.ToShortDateString

MsgBox(Data)

Dim sql As String = "INSERT INTO Tabella(Data) VALUES(" & Data & ")"
Dim comm As New OleDbCommand(sql, conn)
comm.Connection.Open()
comm.ExecuteNonQuery()
comm.Connection.Close()





Questo codice qui sopra inserisce una data in un database Access,
utilizzando un applicazione Windows VB.NET,
e
uno strumento DateTimePiker1() per ricavare la data,

il problema e' che il MsgBox(Data) che noterete sopra mi indica la seguente data " 24/06/2002 ", ma quando poi controllo da Access vedo inserito "30/12/1896" e cliccandoci diventa "0.00.43",


Ma cosa significa ????????????

Come devo fare per inserire in un campo "Date" una data ???

buttarelli
08-07-2002, 08:40
1) Controlla il formato della data;
2) Nella query SQL prova a inserire la data in formato MM/GG/AAAA (tra apici);

cionci
08-07-2002, 12:25
Secondo me il migliore formato per le date è quello di MySQL che puoi tranquillamente implementare anche in Access...

Basta che tu faccia un campo di testo di 8 caratteri (se vuoi solo la data e non l'ora)....

Deve avere il seguente formato : AAAAMMGG...ad esempio oggi sarebbe 20020708...

Per convertire dal formato data di VB a questo ti fai un paio di funzioncine...

I vantaggi di questo formato sono :

1) Ordine ovvero TIMESTAMP1 > TIMESTAMP2 se e solo se GIORNO1 è successivo a GIORNO2... Anche il formato data di Access si ordina bene, ma solo all'interno di
Access...
2) Ricerca... Ad esempio se voglio cercare tutti i record id maggio 2002 basta fare una query con Like '200205*'... Se voglio tutti i record di Maggio di qualsiasi anno posso ricercare con Like '????05*'...

Attenzione alle ricerche con *...L'asterisco funziona solo in Access, mentre con ADO devi usare la %...per il punto interrogativo (che sostituiesce una sola lettera) funziona in Access mentre con ADO non ho provato...