Avatar billede george Nybegynder
18. februar 2001 - 15:53 Der er 48 kommentarer og
1 løsning

Vis poster i datointerval

Hvordan for jeg vist poster fra 01-01-2000 til 01-04-2000 fra en Access base ?

Jeg har en følgende sql :
sql = \"Select * From xxx Where (Dato < \'\" & StartDato & \"\' And Dato > \'\" & SlutDato & \"\')\"
Men den \"fanger\" ikke posterne i basen ?
Avatar billede keysersoze Ekspert
18. februar 2001 - 15:56 #1
kommer der en fejl eller bare slet ingen poster?
Avatar billede netsrac Praktikant
18. februar 2001 - 15:56 #2
sql = \"Select * From xxx Where (Dato < #\" & StartDato & \"# And Dato > #\" & SlutDato & \"#)\"

Hvis det er dato felter ?
Avatar billede george Nybegynder
18. februar 2001 - 16:14 #3
Det virker ikke rigtigt. Alle poster bliver vist.

Har lige checket i basen at det er datofleter.
Avatar billede george Nybegynder
18. februar 2001 - 16:15 #4
datofelter hvis jeg ellers kunne stave.
Avatar billede netsrac Praktikant
18. februar 2001 - 16:32 #5
StartDato og SlutDato kommer de ind i sql sætningen i samme format som felterne i databasen er formateret til ?
Avatar billede george Nybegynder
18. februar 2001 - 16:42 #6
Datoformat i basen ser sådan ud : 01-01-2000

Datoformat ved indtastning ser sådan ud : 01-01-00

Jeg laver det indtastede format om så det ser ud som i basen med noget kode jeg har lavet. Det skulle virke da jeg har checket sql strengen flere gange.

Checker lige op en gang til.
Avatar billede netsrac Praktikant
18. februar 2001 - 16:44 #7
Du kan bare udsrive sql sætningen også tjekke

response.write(sql)
Avatar billede george Nybegynder
18. februar 2001 - 16:47 #8
Min sql streng ser sådan ud når jeg kører scriptet:

select * from xxx where (dato < #01-01-2000# And dato > #01-04-2000#)
Avatar billede netsrac Praktikant
18. februar 2001 - 16:58 #9
Hm..
Avatar billede sone Nybegynder
18. februar 2001 - 17:01 #10
Vend tegnene...

select * from xxx where (dato > #01-01-2000# And dato < #01-04-2000#)
Avatar billede george Nybegynder
18. februar 2001 - 17:04 #11
Det har jeg lige gjort uden held.
Avatar billede netsrac Praktikant
18. februar 2001 - 17:04 #12
Dooh....Ja det er jo rigtigt, den jeg har skrevet vil jo aldrig give noget resultat.
Avatar billede sone Nybegynder
18. februar 2001 - 17:06 #13
Får du en fejl eller bare ingen resultater?
Avatar billede george Nybegynder
18. februar 2001 - 17:40 #14
Sone, du havde faktisk ret. Tegnene skal vendes.
Den skal jo vælge alle dem hvor datoen er større end 01-01-2000 og mindre end 01-04-2000.

Men jeg havde et andet problem.
\'set xxxx = conn.execute(sql)
så sker der jo ikke så meget

Men der er stadig noget galt, vender lige tilbage med problemet.
Avatar billede george Nybegynder
18. februar 2001 - 18:09 #15
Det virker kun en gang imellem

Jeg har to datoer i basen:
18-02-2001 og 07-04-2001

Når jeg skriver datoerne 01-01-2001 til 01-06-2001 virker det engang imellem.

Hvad kan der være galt ?
Avatar billede godtnok Nybegynder
21. februar 2001 - 19:24 #16
Prøv med:
SQL = \"SELECT * FROM table Where Dato between #\" & startDato & \"# and #\" & slutDato & \"#\"
Avatar billede godtnok Nybegynder
22. februar 2001 - 19:30 #17
hmm... mit eksempel virker på http://asp.accorhotel.dk
Avatar billede george Nybegynder
22. februar 2001 - 19:32 #18
Det virker desværre heller ikke.

Det jeg gør når jeg gemmer dato i basen er :

dato_nu = Now()
dato = formatdatetime(dato_nu,vbShortDate)

insert into .... o.s.v.

Når jeg ser i basen ser datoen sådan ud : 01-02-2001

Datofeltet i basen er et datofelt med et kort datoformat

Der er ingen poster i basen når jeg kører scriptet.
Avatar billede godtnok Nybegynder
22. februar 2001 - 19:34 #19
prøv at skrive dine datoer ud fra db\'en

f.eks.

02-03-2001 (2 marts 2001)
13-03-2001 (12 marts 2001)

uden at formatere datoerne
Avatar billede godtnok Nybegynder
22. februar 2001 - 19:35 #20
Det jeg fisker efter er hvordan db\'en formaterer datoerne
Avatar billede george Nybegynder
22. februar 2001 - 19:45 #21
Mener du med Response.Write(Rs(Dato)) ?
Avatar billede george Nybegynder
22. februar 2001 - 20:11 #22
Jeg har lige lavet eet andet script der henter datoen fra databasen. Datoen vises som : 01-02-2001
Avatar billede godtnok Nybegynder
22. februar 2001 - 20:11 #23
Med Response.Write RS(\"Dato\")
Avatar billede godtnok Nybegynder
22. februar 2001 - 20:12 #24
og hvilken dato er det så?

1 februar 2001 el. 2 Januar 2001 ?
Avatar billede george Nybegynder
22. februar 2001 - 20:48 #25
1 februar 2001
Avatar billede george Nybegynder
22. februar 2001 - 20:49 #26
Ja med Response.Write RS(\"Dato\")
Avatar billede godtnok Nybegynder
22. februar 2001 - 20:55 #27
Må jeg se hele din kode?
Avatar billede george Nybegynder
22. februar 2001 - 20:55 #28
Jeg ser lige længere oppe i svar fra dig at du skriver at det virker på http://asp.accorhotel.dk

Hvordan er din dato fra dropdown presenteret når du søger i basen ?

I en streng ? ( 01-02-2001 )
Avatar billede godtnok Nybegynder
22. februar 2001 - 20:59 #29
startdato = dd & \"/\" & mm & \"/\" & yy
Avatar billede george Nybegynder
22. februar 2001 - 21:02 #30
Hvordan ser din dato ud i basen ?

1/2/2001 ?
Avatar billede godtnok Nybegynder
22. februar 2001 - 21:04 #31
Der er forskel på hvordan du ser datoen i tabel design i db\'en og det du får fra db\'en når du henter det ud via et asp script.

Kan du ikke bare vise mig hele din kode, så vil jeg se om jeg kan finde fejlen.
Avatar billede godtnok Nybegynder
22. februar 2001 - 21:05 #32
Du kan også prøv at sætte følgende linie ind i dine scripts:

Session.LCID = 1030

Avatar billede george Nybegynder
22. februar 2001 - 21:05 #33
Her er starten af min kode:

    Startdato = request.form(\"Startdato\")
    Slutdato = request.form(\"Slutdato\")

    \'Konverter startdato
    StartDatoLeft = left(Startdato, 2)
    StartDatoMid = mid(Startdato, 3, 2)
    StartDatoRight = Right(Startdato, 2)
    StartDato1 = StartDatoLeft & \"-\" & StartDatoMid & \"-20\" & StartDatoRight
    \'Response.Write Startdato1

    \'Konverter Slutdato
    SlutDatoLeft = left(Slutdato, 2)
    SlutDatoMid = mid(slutdato, 3, 2)
    slutDatoRight = Right(Slutdato, 2)
    SlutDato1 = SlutDatoLeft & \"-\" & SlutDatoMid & \"-20\" & SlutDatoRight
    \'Response.Write slutdato1

    set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"../database/pension.mdb\")

    set RsBookingListe = Server.CreateObject(\"ADODB.Recordset\")
    RsBookingListe.Open \"SELECT * FROM kundekort\", Conn, 1, 3
    sql = \"SELECT * FROM kundekort WHERE Dato between #\" & Startdato1 & \"# AND #\" & SlutDato1 & \"#\"
   
    \'Response.Write sql
    set RsBookingListe = conn.Execute(sql)

Jeg tror problemet ligger i øverste del af koden omkring konvertering af startdato og slutdato
Avatar billede godtnok Nybegynder
22. februar 2001 - 21:05 #34
Det virker en gang imellem :-)
Avatar billede george Nybegynder
22. februar 2001 - 22:27 #35
Det var tidligere det virkede engang imellem. Nu viser den slet ingen poster ( med din kode )

Det hjalp ikke med Session.LCID = 1030

Når jeg indtaster startdato og slutdato på foregående side er det i formatet : 010101 for 01.01.2001 og 010601 for 01.06.2001 og det er derfor jeg konverterer de indtastede datoer om øverst i ovenstående script.

Måske kan jeg ikke konverterer på den måde ???
Avatar billede godtnok Nybegynder
22. februar 2001 - 22:37 #36
prøv at lave dette :

startdato = replace(request.form(\"startdato\"), \".\", \"/\")
slutdato = replace(request.form(\"startdato\"), \".\", \"/\")

og fjern din egen konvertering af datoerne.

Avatar billede godtnok Nybegynder
22. februar 2001 - 22:40 #37
undskyld :

startdato = replace(Trim(request.form(\"startdato\")), \".\", \"/\")
slutdato = replace(Trim(request.form(\"startdato\")), \".\", \"/\")


Avatar billede godtnok Nybegynder
22. februar 2001 - 22:41 #38
sludder.... jeg er vist ved at være træt. Ignorér de sidste to af mine indlæg
Avatar billede godtnok Nybegynder
22. februar 2001 - 22:44 #39
Prøv med:

sql = \"SELECT * FROM kundekort WHERE Dato between #\" & Cdate(Startdato1) & \"# AND #\" & Cdate(SlutDato1) & \"#\"
Avatar billede george Nybegynder
22. februar 2001 - 23:07 #40
Virker heller ikke.

Lad os fortsætte i morgen hvis du gidder. Jeg er ved at være træt i hovedet nu. Tak for hjælpen intil videre.
Avatar billede godtnok Nybegynder
22. februar 2001 - 23:08 #41
prøv lige og skriv hvilken fejl det giver
Avatar billede george Nybegynder
23. februar 2001 - 07:47 #42
Der kommer ingen fejl, den finder bare ingen poster
Avatar billede george Nybegynder
24. februar 2001 - 13:09 #43
godtnok! Hvordan ser dit datofelt ud på http://asp.accorhotel.dk, 1/2/2001 eller 01.02.2001 og hvordan er det formateret ?
Avatar billede godtnok Nybegynder
24. februar 2001 - 23:46 #44
startdato = dd & \"/\" & mm & \"/\" & yy

Avatar billede godtnok Nybegynder
24. februar 2001 - 23:47 #45
01/02/01
Avatar billede george Nybegynder
25. februar 2001 - 11:21 #46
Er det sådan det ser ud i basen : 01/02/01

Hvad med din sql streng hvordan ser den ud ?
Avatar billede godtnok Nybegynder
25. februar 2001 - 20:27 #47
Datoen i min access base ser sådan her ud: 01-02-01

og min sql streng har jeg postet som svar tidligere :-)
Avatar billede jgp Nybegynder
23. januar 2002 - 15:27 #48
I SQL skal alle dato formater skrives amerikansk, alså MM/DD/YYYY.
Avatar billede george Nybegynder
19. januar 2003 - 00:55 #49
Fik det aldrig til at virke så jeg lukker spørgsmålet.
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