08. maj 2008 - 11:18
Der er
15 kommentarer og 1 løsning
Klassisk DB problem
Hej Jeg har fået et klassisk database problem når jeg skal udskrive via Access og ASP. Den vender datoen om... Jeg har smidt <% Session.LCID = 1030 %> i toppen af hvert asp side, men når jeg skal skrive f.eks. 01-10-2008, så skriver den 10-01-2008.. Håber en kan hjælpe.. Her er koden som udskriver siden på skærmen.. <% Session.LCID = 1030 %> <center> <% Sub Tabel(Byref objRecordSet) Dim i Response.Write"<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER frame=below>" 'udskriv header( feltnavn) Response.Write "<tr bgColor=#CDC9C9>" For i = 0 to objRecordset.Fields.Count - 1 Response.Write "<td><font face=arial size=1><b>" & objRecordset.fields.item(i).name & "</b></font></td>" Next Response.Write "</tr>" 'udskriv krop (feltpost) j=0 Do While Not objRecordset.EOF select case weekday(objrecordset("Spilledato")) case 1 dage ="Søndag" case 2 dage ="Mandag" case 3 dage ="Tirsdag" case 4 dage ="Onsdag" case 5 dage ="Torsdag" case 6 dage ="Fredag" case 7 dage ="Lørdag" end select j=j+1 if(j mod 2)=0 then Response.Write "<tr bgColor=#F8F8FF>" else Response.Write "<tr bgColor=#E8E8E8>" End if 'response.write "<td>" & objRecordset("Id") & "</td>" response.write "<td>" & objRecordset("Person") & "</td>" 'response.write "<td>" & objRecordset("Spillested") & "</td>" response.write "<td>" & dage & "</td>" 'response.write "<td>" & objRecordset("Spilletid") & "</td>" response.write "<td>" & objRecordset("Spilledato") & "</td>" 'response.write "<td>" & objRecordset("Beskrivelse") & "</td>" response.write "<td><a href=sletpost.asp?ID=" & objRecordset("ID") & ">Slet</a></td>" objRecordset.MoveNext Response.Write "</tr>" Loop Response.Write "</table>" End Sub %> </center>
Annonceindlæg fra Infor
Glemte at skrive, at i Access står datofeltet som . Kort datoformat og indputmasken er sat til "dd"-"mm"-"yyyy";;_
select case weekday(objrecordset("Spilledato")) case 1 dage ="Søndag" case 2 dage ="Mandag" case 3 dage ="Tirsdag" case 4 dage ="Onsdag" case 5 dage ="Torsdag" case 6 dage ="Fredag" case 7 dage ="Lørdag" end select Kan så gøre således: WeekdayName(weekday(objrecordset("Spilledato"))) .. bare en kommentar :P
solle>.. takker.. .. dvs. den ene sætning skal jeg bare sætte ind i stedet for alt det andet??
dage = WeekdayName(weekday(objrecordset("Spilledato"))) Har du prøvet at smide "objRecordset("Spilledato")" ind i en "CDate()"?? response.write "<td>" & CDate(objRecordset("Spilledato")) & "</td>"
Har lige prøvet det response.write "<td>" & CDate(objRecordset("Spilledato")) & "</td>" men den udskriver stadgivæk forkert...
Jeg har også bakset med det længe, indtil jeg fandt ud af, at jeg måtte bruge denne funktion, når jeg gemte en dato i databasen: function DBDate(sDate) DBDate=right("0"&month(sDate),2) &"-"& right("0"&day(sDate),2) &"-"& year(sDate) end function Så gemmer du datoen med: DBDate(datoen) Og det fungerer bare!
gæt nr. 2: session.LCID=1030 FormatDateTime(CDate(objRecordset("Spilledato")) ,2)
w13 ... må erkende jeg også selv benytter egen funktion til det pjat :P
w13.. Er lige lidt lost der.. hvordan vil du sætte det ind i min kode?
Jeg vil ikke indsætte det i den kode, for det bliver nødt til at blive indsat på den side, hvor man gemmer datoen. F.eks. sådan her i en SQL: "INSERT INTO table1 (dato) VALUES (#"&DBDate(01-10-2008)&"#)"
Der hvor jeg gemmer er siden her : <% @language=VBScript %> <% Session.LCID = 1030 %> <% set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb") Person = request.form ("Person") Spilledato = request.form ("Spilledato") strSQL = "Insert into kalender(Person, Spilledato) values ('" & Person &"','" & Spilledato &"')" Conn.Execute(strSQL) conn.Close set conn = nothing response.redirect("tourdate.asp") %>
Præcis, så retter du: strSQL = "Insert into kalender(Person, Spilledato) values ('" & Person &"','" & Spilledato &"')" til: strSQL = "Insert into kalender(Person, Spilledato) values ('" & Person &"','" & DBDate(Spilledato) &"')"
Hov, vi skal også lige have funktionen ind, så ret det til: function DBDate(sDate) DBDate=right("0"&month(sDate),2) &"-"& right("0"&day(sDate),2) &"-"& year(sDate) end function strSQL = "Insert into kalender(Person, Spilledato) values ('" & Person &"','" & DBDate(Spilledato) &"')"
det kører jeg super.. 10000 tak.. :):)
hov.. det kører JO super :)
Kurser inden for grundlæggende programmering