Avatar billede nederbasse Nybegynder
05. marts 2002 - 09:31 Der er 10 kommentarer og
1 løsning

visning af dato og tid

På vores intranetserver kan man bestille et lokale, en asp side viser de tider der er bestilt men lige pludselig viser den kun den sidst indtastet bestilling.
koden til at vise bestillingerne ser sådan ud:
vis = "Select * From tblBestil WHERE Dato > #" & Date()-1 & "# order by dato asc"

Den skal vise bestillinger FRA idag og frem men hvis jeg bestiller d. 12-12-03 viser den kun denne bestilling.
I databasen er datatypen Dato og klokkeslæt, formatet er Kort datoformat.
Avatar billede coltau Juniormester
05. marts 2002 - 09:52 #1
Fjern asc til sidst i sætningen.
Men undersøg først og fremmest at dine datoer bliver indsat korrekt i databasen. Access bytter nogle gange om på dag og måned. Indsæt derfor altid i formatet: MM-DD-YYYY.
Formatet "Kort datoformat" har ingen indflydelse på din ASP-kode. Det anvendes kun når Access skal vise tidspunktet.
Avatar billede nederbasse Nybegynder
05. marts 2002 - 10:08 #2
Da jeg fjernede asc viste den alle datoer fra idag og frem men da jeg opdaterede siden viste den kun en bestilling til d. 16-4 og der er mange inden da.
Avatar billede coltau Juniormester
05. marts 2002 - 10:12 #3
Prøv den lige igen - den skal virke. Opdatering af siden kan fejle når der sendes parametre til siden.
Avatar billede nederbasse Nybegynder
05. marts 2002 - 10:24 #4
Desværre det gør den ikke, sådan ser koden ud nu:
vis = "Select * From tblBestil WHERE Dato > #" & Date()-1 & "#"

Kan godt fjerne det hele til : vis = "Select * From tblBestil" men så vises alle ca. 250 bestillinger :-(
Avatar billede coltau Juniormester
05. marts 2002 - 10:31 #5
Nu du har "fjernet" det hele kunne du så ikke lige prøve med nogle tests.
Eks.
vis = "Select * From tblBestil WHERE Dato > #12-12-2002#"
Prøv med et par forskellige datoer.
Husk formatet skal være MM-DD-YYYY.
Er du sikker på at udtrykket Date()-1 formateres med måned først. ?
Avatar billede coltau Juniormester
05. marts 2002 - 10:34 #6
Håndtering af datoer i forbindelse med Access giver altid problemer hvis ikke man konsekvent anvender formatet MM-DD-YYYY. Benyt evt. denne function.

function FDate(Value) ' Value type dato
  FDate = Month(Value) & "-" & Day(Value) & "-" & Year(Value)
end function

således:
vis = "Select * From tblBestil WHERE Dato > #" & FDate(Date()-1) & "#"
Avatar billede nederbasse Nybegynder
05. marts 2002 - 11:14 #7
vis = "Select * From tblBestil WHERE Dato > #16-03-2002#"
viser de to bestillinger der er efter 16-3-2002

jeg har sat session.LCID=1030 ind for at få datoen vist som brugerne gerne vil have det.
Det har virket fint de sidste 3 måneder lige indtil idag
Avatar billede coltau Juniormester
05. marts 2002 - 11:44 #8
Vær opmærksom på at session.LCID=1030 kun virker på ASP-koden - det gælder ikke for Access.

Det virker når du anvender 16-03-2002 fordi Access først forsøger at vende om på måned og dag - men opdager at det giver 03-16-2002 som ikke er en korrekt dato. Derfor acceptere den datoen som du har skrevet. (Samme ulogiske metode anvendes også i ASP.)

session.LCID=1030 betyder at konvertering af datotyper til string-typer resultere i DD-MM-YYYY, som brugeren gerne vil se på skærmen - men det betyder samtidig at din SQL-sætning fejler måned/dag kan byttes om. Eks. 11-05-2002 ændres af Access til 05-11-2002 i SQL-sætninger.

Som jeg har nævnt tidligere så skal du konsekvent anvende formatet MM-DD-YYYY i forbindelse med Access. (SQL-sætninger og lign.)

Når du så viser datofelter fra databasen skal du ikke ændre noget i det session.LCID=1030 sørger for resten.
Avatar billede nederbasse Nybegynder
05. marts 2002 - 11:53 #9
Det mest mærkelige er at det har virket upåklageligt, har en mistanke om der er nogen der har pillet ved serveren og at problemet slet ikke skal findes i asp koden.
hele koden er her: http://users.cybercity.dk/~dsl32642/koden.htm
Avatar billede coltau Juniormester
05. marts 2002 - 12:45 #10
Jeg mener helt klart at du skal gøre brug af denne function i dine SQL-sætninger.

function FDate(Value) ' Value type dato
  FDate = Month(Value) & "-" & Day(Value) & "-" & Year(Value)
end function

vis = "Select * From tblBestil WHERE Dato > #" & FDate(Date()-1) & "# order by dato" ' De yngste først

Men før du gør det skal du i Access kontrollére at aftalerne i databasen er indsat med korrekte datoer.
Avatar billede nederbasse Nybegynder
05. marts 2002 - 13:14 #11
Det virker nu med den Function, men jeg tror alligevel jeg hiver IIS'en af serverren og geninstallere den.
Tak for hjælpen
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