Avatar billede no_doubt Nybegynder
28. marts 2008 - 00:11 Der er 6 kommentarer og
1 løsning

Rigtig dato format - 100% dansk

Jeg får datoen ind som følgende format 27-03-2008

Den findes i variablen "Datoen"

Jeg skal så have tjekke om den dato forefindes, det fungere sådan set fint nok. Men når den så enten skal indsætte eller opdatere, skriver den NOGENGANGE, datoen forkert ind.

Jeg kan simpelthen ikke dreje hvordan jeg med 100% sikkerhed får det rigtige format ind. Jeg synes jeg har prøvet med både day(datoen) osv, samt ## omkring

Sådan ser den ud pt:

<%
session.lcid = 1030
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")

For Each bla in Request.Form
  If Request.Form(bla) = "ON" Then
    del = Split(bla,"_")
    Typeen = del(0)
      VaerelsesNummer = del(1)
    Datoen = del(2)
   
    sql = "select * from booking where dato = "&Datoen&""
    set rs = Conn.Execute(sql)
    response.write sql & "<br>"


    if rs.eof then   
    sql1 = "Insert into booking (dato, "& Typeen & VaerelsesNummer &") values (#"&Datoen&"#, true)"
    response.write sql1 & "<br>"
    Conn.Execute(sql1)

    else
    sql2 = "UPDATE booking SET "& Typeen & VaerelsesNummer &" = true where dato =#"& Datoen &"#"
    response.write sql2 & "<br>"
    Conn.Execute(sql2)
    end if
   
  End If
Next
'response.redirect "default.asp"
%>


Og kan ses på http://www.aqua-care.firmdesign.dk/plan/ (der står Book i BUNDEN)
Avatar billede fennec Nybegynder
28. marts 2008 - 08:07 #1
Access SKAL have datoer formatet i #mm-dd-yyyy#. Så send dem igennem en funktion:

function DBDate(fDate)
dim fDay, fMon, fYear
  fYear= Year(fDate)
  fMon= Month(fDate)
  fDay= Day(fDate)
  fDay= right("0"&fDay, 2)
  fMon= right("0"&fMon, 2)
  DBDate =  "#"& fMon & fDay & fYear &"#"
end function

sql1 = "Insert into booking (dato, "& Typeen & VaerelsesNummer &") values ("&DBDate(Datoen)&", true)"
Avatar billede fennec Nybegynder
28. marts 2008 - 08:11 #2
Og grunden til at det nogen gange virker er at er dagen 13 eller derover kan den god selv finde ud af at vende talene.

Eksempel på hvordan Acces opfatter og behandler datoer:
01-02-2008 = 2 jan 2008
01-13-2008 = 13 jan 2008
13-01-2008 = 13 jan 2008 (ved der ikke findes en 13 måned så den bytter om på mm og dd)
Avatar billede fennec Nybegynder
28. marts 2008 - 08:12 #3
Hov, jeg glemte lige - i funktioen:

DBDate =  "#"& fMon &"-"& fDay &"-"& fYear &"#"
Avatar billede no_doubt Nybegynder
28. marts 2008 - 10:21 #4
Microsoft VBScript compilation  error '800a03ea'

Syntax error

/plan/Gem.asp, line 17

function DBDate(fDate)
^

MED denne udgave:

sql = "select * from booking where dato = "&Datoen&""
    set rs = Conn.Execute(sql)
    response.write sql & "<br>"
   
    function DBDate(fDate)
    dim fDay, fMon, fYear
    fYear= Year(fDate)
    fMon= Month(fDate)
    fDay= Day(fDate)
    fDay= right("0"&fDay, 2)
    fMon= right("0"&fMon, 2)
    DBDate =  "#"& fMon &"-"& fDay &"-"& fYear &"#"
    end function

    if rs.eof then   

    sql1 = "Insert into booking (dato, "& Typeen & VaerelsesNummer &") values ("&DBDate(Datoen)&", true)"
    response.write sql1 & "<br>"
    Conn.Execute(sql1)

    else
    sql2 = "UPDATE booking SET "& Typeen & VaerelsesNummer &" = true where dato ="&DBDate(Datoen)&""
    response.write sql2 & "<br>"
    Conn.Execute(sql2)
    end if
   
  End If
Next
Avatar billede keysersoze Ekspert
28. marts 2008 - 10:50 #5
lad være med at oprette en function inde i et loop.
Avatar billede no_doubt Nybegynder
28. marts 2008 - 11:01 #6
SÅ funker det :-) Svar
Avatar billede fennec Nybegynder
28. marts 2008 - 11:35 #7
.o) <-- One Eyed Jack
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