Avatar billede maxmull Nybegynder
01. februar 2005 - 22:20 Der er 3 kommentarer og
1 løsning

Access og dato formatering

Jeg har et lidt mærkeligt tilfælde.

Jeg kan ikke få dato formatet til at blive gæmt rigtig i Access databasen når den ligger på serveren. Det virker fint når jeg tester det på min lokale web server.

Koden er som følger:

function mitDatoFormat
  dim d, m, y, h, mm, s
  d=right("0" & day(now),2)
  m=right("0" & month(now),2)
  y=year(now)
  h=hour(now)
  mm=minute(now)
  s=second(now)
  mitDatoFormat=d & "-" & m & "-" & y & " " & h & ":" & mm & ":" &s
end function


Set myConn = Server.CreateObject("ADODB.Connection")
strDNS ="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("data\DBG_Ordre.mdb")
ReqOrdreKundeID = Request.form("OrdreKundeID")
ReqOrdreGuideID = Request.form("OrdreGuideID")
ReqOrdreBrugerID = Request.form("OrdreBrugerID")
ReqOrdreAnnonceStr = Request.form("OrdreAnnonceStr")
ReqOrdreAnnonceStrTekst = Request.form("OrdreAnnonceStrTekst")
ReqOrdreGrundPris = Request.form("OrdreGrundPris")
ReqOrdreGenindrygning = Request.form("OrdreGenindrygning")
ReqOrdreGenindrygningAar = Request.form("OrdreGenindrygningAar")
ReqOrdreAntalFarver = Request.form("OrdreAntalFarver")
ReqOrdreFrave = Request.form("OrdreFrave")
ReqOrdreDato = (mitDatoFormat)
strSQL = "INSERT INTO T_Ordre (OrdreKundeID,OrdreGuideID,OrdreBrugerID,OrdreAnnonceStr,OrdreAnnonceStrTekst,OrdreGrundpris,OrdreGenindrygning,OrdreGenindrygningAar,OrdreAntalFarver,OrdreDato)
strSQL = strSQL & "VALUES ('"&(ReqOrdreKundeID)&"','"&(ReqOrdreGuideID)&"','"&(ReqOrdreBrugerID)&"','"&(ReqOrdreAnnonceStr)&"','"&(ReqOrdreAnnonceStrTekst)&"','"&(ReqOrdreGrundpris)&"','"&(ReqOrdreGenindrygning)&"','"&(ReqOrdreGenindrygningAar)&"','"&(ReqOrdreAntalFarver)&"','"&(ReqOrdreDato)&"')"
myConn.Execute(strSQL)

OrdreDato er et felt af typen "Dato og klokkeslæt" i access databasen formateret med "Standarddatoformat"

Hvis jeg forsøger at indsætte værdien af OrdreDato i et andet felt af typen "tekst" så er det formateret rigtig!

Så er det jeg spørger kan Access indstille "Standarddatoformat" efter server indstillingerne ?
Avatar billede eagleeye Praktikant
01. februar 2005 - 22:28 #1
Når man bruger danske datoer og Access kan man opleve Access bytter rundt på måned og dag. Problemet opstår fordi Access bruger US eller UK dato format via SQL, som enten er yyyy-mm-dd eller mm-dd-yyyy. Når man så indsætter en dato i dansk dato format som er dd-mm-yyyy, vil Access bytte rundt på dag og måned i datoen.

Man kan  bruge dato funktionerne Year, Month og Day til at formatere sin dato.

<%
dato = "04-06-2003"
strDato = Year(dato) & "-" & Month(dato) & "-" & Day(dato)
SQL = "INSERT INTO tablenavn (dato) VALUES (#" & strDato & "#)"
%>
Avatar billede eagleeye Praktikant
01. februar 2005 - 22:46 #2
og vil du havde tiden med er format af dato formatet via SQL: yyyy-mm-dd hh:nn:ss


Så du skal sådan set bare havde rette i din funktion så denne linie:

  mitDatoFormat=d & "-" & m & "-" & y & " " & h & ":" & mm & ":" &s


Bliver til dette hvor datoen er formateret så access forstår det rigtigt:

  mitDatoFormat=y & "-" & m & "-" & d & " " & h & ":" & mm & ":" &s
Avatar billede maxmull Nybegynder
01. februar 2005 - 22:57 #3
Jeg har lige prøvet at fjerne "Standarddatoformat" fra feltet og så virker min funktion også fint.

Men er det mere sikkert at bruge din formatering ?
Avatar billede eagleeye Praktikant
01. februar 2005 - 23:02 #4
Ja hvis du bruger dette format for datoer du overføre via SQL som er standart SQL syntax: yyyy-mm-dd hh:nn:ss

Hvis man bruger DK med dagen først vil det virker på nogle dage og andre dage virker det ikke alt efter om dagen er større eller mindre en 12. Hvis du kigger dybt i Access hjælpe filen kan man finde dette:
"Du skal bruge engelske (amerikanske) datoformater i SQL-sætninger i Visual Basic."

Her er Visual Basic = ASP
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester