Avatar billede simsen Mester
02. juli 2005 - 11:45 Der er 6 kommentarer og
1 løsning

Datoformat indsættelse i Access database

Hejsa

Jeg ved ikke om det er her eller i Acces gruppen, jeg skal lægge mit spørgsmål - forsøger her;

Jeg har leget lidt med en kalender, som jeg så ikke har brugt i længere tid (også skiftet styresystem siden)

Da jeg legede med den, havde jeg ingen problemer med at få lagt noget ind i tabellen - men jeg får følgende fejlmedd. nu;

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i datoen i forespørgselsudtrykket "#26-juli-2005#".
/hanne/Administration/Vaerelser/Kalender/add_date.asp, line 33


Koden det drejer sig som ser ud som følgende;


#code_start#

set my_conn= Server.CreateObject("ADODB.Connection")
'my_Conn.Open "DSN=schedule2000"
cnpath="DBQ=" & server.mappath("webcalendar.mdb") 'or where ever you put the db.
my_conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath

'Check to see if it's a new record to be added or an old one to update
StrSql= "Select * from calendar where dte = #" & Request("view_Date") & "#"
strSql= "select * from calendar where month(dte) = " & month(Request("view_date")) & " AND day(dte) = "&day(request("view_date"))
set rs = my_conn.Execute (StrSql)

if rs.BOF or rs.EOF then ' No records found.  i.e. New record
    StrSql2 ="INSERT INTO calendar (dte, text_field) values (#" & request("view_date") & "#, '" & chkString(request("txt")) & "')" 
else ' Record found.  i.e. update record.

StrSql2 = "UPDATE calendar SET calendar.dte = #" & request("view_date") & "#, text_field = '" & chkString(request("txt")) & "' WHERE id = " & rs("id")

End If
my_conn.Execute (strSql2)

#code_end#

Jeg kan se i databasen at den gamle datoformat der bliver lagt ind er således;

dte
1. februar 2005
2. februar 2004

Og at jeg prøver nu at lægge den ind som;

26-juli-2005

Men jeg aner slet og ret ikke, hvor jeg skal ændre datoformatet (og jeg vil ikke i min kode) - så den sætter den ind korrekt som eksempelvis 1. februar 2005.

Jeg vil lige tilføje - prøver jeg at ændre i en eksisterende - så får jeg ingen fejl.

I databasen står den som langt dato format (1. juli 2002).

Nogen der kan hjælpe mig?

mvh

simsen :-)
Avatar billede softspot Forsker
02. juli 2005 - 12:03 #1
Der kørte en tråd i nat med et lign. spm. Det var noget med at Session.LCID skulle sættes til 1030 for dansk datoformat. Prøv evt. at gøre dette et eller andet sted (f.eks. når din session starter).
Avatar billede simsen Mester
02. juli 2005 - 12:20 #2
softspot

Den ER sat til 1030 :-(

Session.LCID = 1030
Avatar billede softspot Forsker
02. juli 2005 - 12:23 #3
CRAP! Det var ellers min joker ;)
Avatar billede simsen Mester
02. juli 2005 - 12:23 #4
softspot

Ændrer jeg den til 1033 - så har jeg ingen problemer - men vil altså ikke have datoformatet ud på engelsk
Avatar billede thesurfer Nybegynder
02. juli 2005 - 13:37 #5
Gem datoen i tal format (f.eks. 02-07-2005), og fix datoen ved udskriften, via ASP kode..

eagleeye lavede noget kode, der udskrev dansk dato, selvom datoen var på engelsk..
Søg i ASP kategorien..

/theSurfer
Avatar billede busschou Praktikant
02. juli 2005 - 21:16 #6
Løsningen forleden var at rette dato formatet før indsættelse i databasen
http://www.eksperten.dk/spm/629574
Men men ... Det var hvor formatet i databasen var dd-mm-yyyy , og problemet var at det blev opfattet som mm-dd-yyyy af selve access databasen af en og anden grund

Jeg vil anbefale generelt at opbevare dato formatet i dd-mm-yyyy i databasen og så lave evt konverteringer i koden, men det er blot min mening og erfaring :o)
Avatar billede busschou Praktikant
27. juli 2005 - 16:09 #7
simsen >> kommet videre?
Jeg kan se at jeg har vrøvlet lidt :o)
Ved alle Update og Insert i en database gemmer jeg altid i YYYY-MM-DD formatet, på den måde er man sikker på det går godt hver gang!
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