Avatar billede -jacob- Nybegynder
17. maj 2002 - 10:48 Der er 21 kommentarer og
1 løsning

Dato-problem: ASP og Access

Jeg har et problem med mine datoer og Access-database.

Hvis jeg i kolonnen "Dato" i min db, fortæller den at det er et "Dato og klokkeslæt-flet", kan jeg sortere mine datoer korrekt (jeg skriver mine datoer sådan her: 11-05-2002), men hvis jeg gør dette kan jeg ikke søge efter en bestemt dato. F.eks. 11-05-2002, selvom den er i databasen.
Men! Hvis jeg laver den samme kolonne om til et "Tekst-felt", så er der ingen problemer med søgningen, men så løber jeg bare i problemer med sorteringen.

Nogle der kan hjælpe???

Mvh.
Jacob
Avatar billede benson Nybegynder
17. maj 2002 - 11:16 #1
Hjælper det at definere feltet i din Access tabel til kun at anvende "kort datoformat", du bruger jo ikke andet ?
Avatar billede dta Nybegynder
17. maj 2002 - 11:56 #2
Dit problem ligger sikkert i hvorledes du formater din SQL. Når du har et felt i Access som er sat til Dato og klokkeslet skal du i din SQL streng når du søger bruge følgende syntax: WHERE DATO = #05-11-2002# Dato er US notation.
Avatar billede medions Nybegynder
17. maj 2002 - 12:59 #3
Det er fordi at Access laver datoen om, så der står, Month/Day/Year <-tror nok det var i den rækkefølge...!

Så det er det du skal tage højde for..!

//>Rune
Avatar billede benson Nybegynder
17. maj 2002 - 13:16 #4
medions> Hmm.. sjovt nok det gør access ikke i min version !
Avatar billede medions Nybegynder
17. maj 2002 - 13:28 #5
hmm.. weird!
//>Rune
Avatar billede -jacob- Nybegynder
17. maj 2002 - 13:54 #6
benson: Jeg har hermed prøvet at lave datofeltet om i db'en til en "Kort datoformat" - men nej. Det hjalp ikke :o(

dta: Hmm, måske er det mig der er dum; men jeg fik ikke hel fat i den måde som du skrev !?

Jeg står på bar bund
Avatar billede bransholm Nybegynder
17. maj 2002 - 13:57 #7
Prøv at lav det om til et tekst felt, og så der hvor du vil trække det ud af databasen, eller sammenligne det med noget, så skriv:

CDate(rs("dato"))

-det vil konvetere din variabel/recordset til datoformat...

//>Rune
Avatar billede benson Nybegynder
17. maj 2002 - 14:04 #8
-jakob-

Kunne du ikke lige vise os din SQL string med SELECT ?
Avatar billede bransholm Nybegynder
17. maj 2002 - 14:05 #9
Doh.. skulle ik' ha' været med det brugernavn..!

Eksperten> Beklager, men jeg har lånt en jeg arbejder for's user, da jeg skulle oprette et spm for ham omkring MySql! -I har lov til at kontakte ham hvis i er i tvivl om der er snyd i det her...!

MVH
Rune
Avatar billede dta Nybegynder
17. maj 2002 - 14:11 #10
SELECT * FROM DATABASE WHERE (Dato >= #"&Month(Date) & "-" & Day(Date) & "-" & Year(Date)&"#)
Avatar billede -jacob- Nybegynder
17. maj 2002 - 14:11 #11
Siden som jeg tjekker om datoen er optaget eller ej, indeholder denne kode:


<%
If Request.Querystring("mode") = "dato" Then
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
  SQl = "SELECT * FROM Booking"
 
  Session("dato") = Request.Form("form_dato")
 
  SQL = "SELECT * FROM Booking"
  Set RS = conn.Execute(SQL)
  RS.MoveFirst
 
  Do While NOT RS.EOF
  If  RS("Dato") = Session("dato") Then Response.Redirect("godkendt.asp?dato=booket")
  If  Session("dato") = "" Then Response.Redirect("godkendt.asp?dato=mangler")
  RS.MoveNext
  Loop
End If
  Response.Redirect("booking1.asp")
%>

Opsumering: Feltet i databasen er stadig af typen; Dato og klokkeslæt

Mvh.
Jacob
Avatar billede dta Nybegynder
17. maj 2002 - 14:16 #12
Og med sortering!
SELECT * FROM DATABASE WHERE (Dato >= #"&Month(Date) & "-" & Day(Date) & "-" & Year(Date)&"#) ORDER BY Dato
Avatar billede -jacob- Nybegynder
17. maj 2002 - 14:20 #13
dta: Og med sortering?? Jeg skal jo ikke sortere mine datoer på denne side, som jeg har vist koden til.
Ovenstående kode er som sagt kun til den side som tjekker om datoen findes i databasen...
Problemet er jo at når jeg skriver f.eks. 11-05-2002, og den findes i databasen, så kan den ikke finde den. Altså den mener at den ikke findes, og godkender derfor det hele, og sender mig videre til booking1.asp

Mvh.
Jacob
Avatar billede dta Nybegynder
17. maj 2002 - 14:27 #14
Du vælger alle dine records i databasen booking dvs. at du altid vil se den sidste nye record. Jeg går ud fra at du ud fra den form du får fra  Request.Form("form_dato") vil se om der er nogle bookinger?

Koden:
SQL = "SELECT * FROM Booking WHERE (Dato >= #"&Month(Session("dato") ) & "-" & Day(Session("dato") ) & "-" & Year(Session("dato") )&"#)"

if RS.EOF or RS.BOD then
  Response.Redirect("godkendt.asp?dato=booket")
else
  Response.Redirect("booking1.asp")
end if
Avatar billede -jacob- Nybegynder
17. maj 2002 - 14:35 #15
dta: Det er korrekt forstået.
Jeg har også prøvet din kode, men den skriver at der er en Intern HTTP 500-serverfejl :-/

Mvh.
Jacob
Avatar billede dta Nybegynder
17. maj 2002 - 14:42 #16
if RS.EOF or RS.BOD then -> if RS.EOF then

Jeg er ikke sikker på hvorledes den vi reagere hvis dit formfelt er tomt så det skal du checke for.
Avatar billede -jacob- Nybegynder
17. maj 2002 - 14:46 #17
dta: Det hjalp ikke.

Er du på icq??
Avatar billede dta Nybegynder
17. maj 2002 - 15:04 #18
Nop! Lad mig se din hele din kode og fortæl mig hvilken linie den fejler i?
Avatar billede -master-d- Nybegynder
17. maj 2002 - 15:20 #19
Du skal bruge det der hedder et kortdato format

Kan læses om her :
http://activedeveloper.dk/aspdigital/kapitel1/formatdate.asp

------------------------------------------------------------------------------
Sådan ser det ud :
dtmDagenIdag = Request.Form("DitTekstFelt")
" & FormatDateTime(dtmDagenIdag, vbShortDate) & "
Avatar billede -jacob- Nybegynder
17. maj 2002 - 15:34 #20
dta:

<%
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
  SQl = "SELECT * FROM Booking"
 
  Session("dato") = Request.Form("form_dato")
 
SQL = "SELECT * FROM Booking WHERE (Dato >= #"&Month(Session("dato") ) & "-" & Day(Session("dato") ) & "-" & Year(Session("dato") )&"#)"

if RS.EOF then
  Response.Redirect("godkendt.asp?dato=booket")
else
  Response.Redirect("booking1.asp")
end if
%>

Mvh.
Jacob
Avatar billede dta Nybegynder
17. maj 2002 - 15:39 #21
<%
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
  SQl = "SELECT * FROM Booking"
 
  Session("dato") = Request.Form("form_dato")
 
SQL = "SELECT * FROM Booking WHERE (Dato = #"&Month(Session("dato") )&_
      "-" & Day(Session("dato") ) & "-" & Year(Session("dato") )&"#)"

Set RS = conn.Execute(SQL)


if RS.EOF then
  Response.Redirect("godkendt.asp?dato=booket")
else
  Response.Redirect("booking1.asp")
end if
%>
Avatar billede -jacob- Nybegynder
17. maj 2002 - 15:50 #22
Det tog sin tid. Der blev prøvet forskellige koder - men kun een virkede.

Dta kom med en koden. Koden der gjorte at det hele sparker numse igen ;-)

Vil hermed ønske alle god weekend samt en lige så god Pinse :-)

Mvh.
En møj glad Jacob
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