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 ?
Annonceindlæg fra itavis
18. februar 2001 - 15:56
#1
kommer der en fejl eller bare slet ingen poster?
18. februar 2001 - 15:56
#2
sql = \"Select * From xxx Where (Dato < #\" & StartDato & \"# And Dato > #\" & SlutDato & \"#)\" Hvis det er dato felter ?
18. februar 2001 - 16:14
#3
Det virker ikke rigtigt. Alle poster bliver vist. Har lige checket i basen at det er datofleter.
18. februar 2001 - 16:15
#4
datofelter hvis jeg ellers kunne stave.
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 ?
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.
18. februar 2001 - 16:44
#7
Du kan bare udsrive sql sætningen også tjekke response.write(sql)
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#)
18. februar 2001 - 16:58
#9
Hm..
18. februar 2001 - 17:01
#10
Vend tegnene... select * from xxx where (dato > #01-01-2000# And dato < #01-04-2000#)
18. februar 2001 - 17:04
#11
Det har jeg lige gjort uden held.
18. februar 2001 - 17:04
#12
Dooh....Ja det er jo rigtigt, den jeg har skrevet vil jo aldrig give noget resultat.
18. februar 2001 - 17:06
#13
Får du en fejl eller bare ingen resultater?
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.
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 ?
21. februar 2001 - 19:24
#16
Prøv med: SQL = \"SELECT * FROM table Where Dato between #\" & startDato & \"# and #\" & slutDato & \"#\"
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.
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
22. februar 2001 - 19:35
#20
Det jeg fisker efter er hvordan db\'en formaterer datoerne
22. februar 2001 - 19:45
#21
Mener du med Response.Write(Rs(Dato)) ?
22. februar 2001 - 20:11
#22
Jeg har lige lavet eet andet script der henter datoen fra databasen. Datoen vises som : 01-02-2001
22. februar 2001 - 20:11
#23
Med Response.Write RS(\"Dato\")
22. februar 2001 - 20:12
#24
og hvilken dato er det så? 1 februar 2001 el. 2 Januar 2001 ?
22. februar 2001 - 20:48
#25
1 februar 2001
22. februar 2001 - 20:49
#26
Ja med Response.Write RS(\"Dato\")
22. februar 2001 - 20:55
#27
Må jeg se hele din kode?
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 )
22. februar 2001 - 20:59
#29
startdato = dd & \"/\" & mm & \"/\" & yy
22. februar 2001 - 21:02
#30
Hvordan ser din dato ud i basen ? 1/2/2001 ?
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.
22. februar 2001 - 21:05
#32
Du kan også prøv at sætte følgende linie ind i dine scripts: Session.LCID = 1030
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
22. februar 2001 - 21:05
#34
Det virker en gang imellem :-)
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 ???
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.
22. februar 2001 - 22:40
#37
undskyld : startdato = replace(Trim(request.form(\"startdato\")), \".\", \"/\") slutdato = replace(Trim(request.form(\"startdato\")), \".\", \"/\")
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
22. februar 2001 - 22:44
#39
Prøv med: sql = \"SELECT * FROM kundekort WHERE Dato between #\" & Cdate(Startdato1) & \"# AND #\" & Cdate(SlutDato1) & \"#\"
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.
22. februar 2001 - 23:08
#41
prøv lige og skriv hvilken fejl det giver
23. februar 2001 - 07:47
#42
Der kommer ingen fejl, den finder bare ingen poster
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 ?
24. februar 2001 - 23:46
#44
startdato = dd & \"/\" & mm & \"/\" & yy
24. februar 2001 - 23:47
#45
01/02/01
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 ?
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 :-)
23. januar 2002 - 15:27
#48
I SQL skal alle dato formater skrives amerikansk, alså MM/DD/YYYY.
19. januar 2003 - 00:55
#49
Fik det aldrig til at virke så jeg lukker spørgsmålet.
Kurser inden for grundlæggende programmering