Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Campo data access 2003
giovedì 02 aprile 2009 - 12.50
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
tomfrusciante
Profilo
| Newbie
2
messaggi | Data Invio:
gio 2 apr 2009 - 12:50
Salve ragazzi sono fresco di registrazione anche se il Vs. forum da tempo mi è sempre stato utile. Veniamo al dunque. Scrivo in questa sezione per il fatto che oggi avviando il mio DB improvvisamente il campo data di una tabella mi viene inserito con il formato mm/dd/yyyy quando a me occorre il formato dd/mm/yyyy. L'inserimento viene fatto da VBA e il bello che a oggi ha sempre funzionato correttamente. :-(((
Qualche suggerimento sull'arcano??
P.S.
la query VBA è:
With cmd
.ActiveConnection = CurrentProject.Connection
.CommandText = "INSERT INTO giornalepresenze ( id_dipendente, nome, cognome, tariffaday, mansione, data ) " & _
"SELECT id_dipendente, nome, cognome, tariffaday, mansione, #" & Format(Now(), "dd/mm/yyyy") & "# FROM [dipendenti] " & _
"WHERE id_dipendente = '" & rec("id_dipendente") & "';"
.CommandType = adCmdText
.Execute
End With
in fase di debug il Format(Now(), "dd/mm/yyyy") è corretto (es. 01/04/2009) ma poi all'atto dell'execute e dopo il refresh mi trovo nella tabella un bel 04/01/2009 (...data oggi).
Ripeto fino a lunedì tutto funzionava alla perfezione.
per ora ho sostituito il Format(Now(), "dd/mm/yyyy") con
Format(Now(), "mm/dd/yyyy") e paradossalmente nella tabella mi trovo un 01/04/2009 (...data oggi)
se tento inserimento manuale funge.
esplorando la variabile .CommandText della query VBA è corretta!
se tento inserimento da query Access funge
Ringrazio anticipatamente per l'aiuto. TF
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
gio 2 apr 2009 - 13:33
>With cmd
>.ActiveConnection = CurrentProject.Connection
>.CommandText = "INSERT INTO giornalepresenze ( id_dipendente,
>nome, cognome, tariffaday, mansione, data ) " & _
>"SELECT id_dipendente, nome, cognome, tariffaday, mansione, #"
>& Format(Now(), "dd/mm/yyyy") & "# FROM [dipendenti] " & _
>"WHERE id_dipendente = '" & rec("id_dipendente") & "';"
>.CommandType = adCmdText
>.Execute
>End With
Ciao Tommaso,
La soluzione ideale consisterebbe nel definire una query parametrica in modo da evitare qualunque problema legato al formato data ma soprattutto ti metteresti al riparo dagli attacchi di SQL Injection.
http://www.dotnethell.it/forum/messages.aspx?ThreadID=13913
http://www.dotnethell.it/articles/SQL-Injection-Tutorial-Security.aspx
Se per qualunque motivo non vuoi adottare la soluzione appena segnalata, ricordati che Access riconosce il formato #mm/dd/yyyy# indipendentemente dalle regional settings, pertanto formatta la data in quel modo (simboli # inclusi).
>Ringrazio anticipatamente per l'aiuto. TF
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
tomfrusciante
Profilo
| Newbie
2
messaggi | Data Invio:
gio 2 apr 2009 - 14:33
anzitutto grazie per la tempestiva risposta...studierò i tuoi consigli. L'unico cruccio è che la query incriminata ha funzionato perfettamente per un paio di giorni popolando la tabella con dati/date conformi.
Ergo quando mi trovo davanti all'irreale, al filosofico, all'astratto nel settore informatico due sono le idee che mi passano per la mente:
1° non ho capito un....
2° qualcosa è cambiato nei settaggi, o qlc del genere.
anyway grazie e se ti passa per la mente qualche altro motivo che spieghi l'accaduto tienimi aggiornato, infondo capire come funziona il sistema è l'interessante non solo il fatto che funzioni.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !