22. februar 2008 - 13:00
Der er
24 kommentarer og 1 løsning
Vis de kommende events i kalenderen
Hej... Jeg har følgende SQL, som skal hente de 3 næste event i min kalender: kalSQL = "select top 3 * from kalender where startd >= #" & Date() & "# order by startd men det gør den ikke... den vælger kun de kommende event som har en større "dag's dato" i de kommenden måneder. Min startd er gemt som dato/tid i access. Hvad gør jeg galt?
Annonceindlæg fra Computerworld
22. februar 2008 - 13:29
#1
Du vil have de 3 næste events, men får de 3 kommende events ? Definer venligst kommende, og næste... /JJ
22. februar 2008 - 15:10
#2
Hvis mine events ligger på følgende dag: 3. Maj 2008 17. Maj 2008 24. Maj 2008 14. Juni 2008 5. Juli 2008 26. Juli 2008 16. August 2008 23. August 2008 så er mit nuværende udtræk 24. Maj 2008, 26. Juli 2008 og 23. August 2008 fordi deres dag er større end den 22 (som er i dag) men jeg skulle have haft 24. Maj 2008, 14. Juni 2008 og 5. Juli 2008 da det er de 3 kommende events.
22. februar 2008 - 15:11
#3
fejl jeg skulle have haft: 3. Maj 2008 17. Maj 2008 24. Maj 2008
22. februar 2008 - 15:27
#4
order by.. kig lige nærmere på den.. :) /JJ
22. februar 2008 - 15:44
#5
du kunne ikke komme med et hint for jeg ved ikke hvad der skal gøres!!!
23. februar 2008 - 11:44
#6
Prøv med "ORDER BY startd DESC" Det skal jo vel virke med en almindelig order by.
23. februar 2008 - 12:31
#7
jeg kan nu se at det er ikke order by der er problemet pt. det er where sætningen som kun henter datoer med en større dag's dato ud!!! where startd >= #" & Date() & "#"
23. februar 2008 - 13:53
#8
Er det ikke også meningen? Du har en aktivetskalender, hvor den skal vise de næste 3 aktiviteter fra dags dato?
23. februar 2008 - 13:59
#9
jo, men som jeg skrev så ved en liste med følgende datoer: 3. Maj 2008 17. Maj 2008 24. Maj 2008 14. Juni 2008 5. Juli 2008 26. Juli 2008 16. August 2008 23. August 2008 så giver mit udtræk følgende datoer 24. Maj 2008 26. Juli 2008 23. August 2008 fordi fordi deres dato (dagens nummer) er større end 22 men jeg skulle have haft datoerne: 3. Maj 2008 17. Maj 2008 24. Maj 2008 fordi de er de næste
23. februar 2008 - 14:50
#10
Okay her er en sceneraio. Vi har den 23 idag. Her er det du har i db: 3. Maj 2008 17. Maj 2008 24. Maj 2008 14. Juni 2008 5. Juli 2008 Nu vil du have disse 3 ud: 3. Maj 2008 17. Maj 2008 24. Maj 2008 SOm burde kunne gøres ved dette: kalSQL = "select top 3 * from kalender where startd >= #" & now() & "# order by startd DESC" Hvis det ikke virker så prøv med kalSQL = "select top 3 * from kalender where startd >= #" & getdate() & "# order by startd DESC" Hvis det ikke virker så prøv med kalSQL = "select top 3 * from kalender where startd >= '" & now() & "' order by startd DESC" osv
23. februar 2008 - 14:56
#11
jeg har prøvet mange, men ingen af dem virker. Er det fordi access ikke kan sortere på den måde med datorer?
23. februar 2008 - 15:05
#12
Okay, hvad får du ud af kalSQL ved hver af de foreslag jeg gav dig?
23. februar 2008 - 15:09
#13
jeg fik: 1. 26-07-2008 15:00:00 24-05-2008 00:00:00 23-08-2008 13:00:00 2. fejl getdate() findes ikke 3. 26-07-2008 15:00:00 24-05-2008 00:00:00 23-08-2008 13:00:00
23. februar 2008 - 15:16
#14
aha ser ud til at den sorteres forkert med desc, skal være ASC:) Og så ser det ud til at den sorterer forker tpå dato. Prv dette. a=split(date(),"-") dato_nu=a(1)&"-"&a(0)&"-"&a(2) kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= #" & dato_nu & "# ORDER BY startd ASC" SIg hvad den udskriver hvis dte ikke virker
23. februar 2008 - 15:21
#15
Den udskriver: 23-08-2008 13:00:00 24-05-2008 00:00:00 26-07-2008 15:00:00
23. februar 2008 - 15:23
#16
a=split(date(),"-") dato_nu=a(0)&"-"&a(1)&"-"&a(2) kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= #" & dato_nu & "# ORDER BY startd ASC" prøv dette
23. februar 2008 - 15:25
#17
Eller det virker jo self heller ikke, da det ver det samme som date() Hvilken slagsfelt er din startd i access? Er det datetime felt eller tekst felt?
23. februar 2008 - 15:26
#18
session.LCID=1030 a=split(date(),"-") dato_nu=a(1)&"-"&a(0)&"-"&a(2) kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= #" & dato_nu & "# ORDER BY startd ASC" Hvad udskriver den her?
23. februar 2008 - 15:28
#19
det er et tekstfelt
23. februar 2008 - 15:32
#20
okay kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= '" & dato_nu & "' ORDER BY startd ASC" Gi dette et forsøg. Og hvis ingenting af det jeg har sagt har hjulpet en disse, så ville jeg prøve at ændre din felt til en datetime felt. Og så SKAL dette simpelthen virke: session.LCID=1030 a=split(date(),"-") dato_nu=a(1)&"-"&a(0)&"-"&a(2) kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= #" & dato_nu & "# ORDER BY startd ASC"
23. februar 2008 - 15:33
#21
Fejl, dette her mente jeg:::: session.LCID=1030 a=split(date(),"-") dato_nu=a(1)&"-"&a(0)&"-"&a(2) kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= '" & dato_nu & "' ORDER BY startd ASC" Gi dette et forsøg. Og hvis ingenting af det jeg har sagt har hjulpet en disse, så ville jeg prøve at ændre din felt til en datetime felt. Og så SKAL dette simpelthen virke: session.LCID=1030 a=split(date(),"-") dato_nu=a(1)&"-"&a(0)&"-"&a(2) kalSQL = "SELECT TOP 3 * FROM kalender WHERE startd >= #" & dato_nu & "# ORDER BY startd ASC"
23. februar 2008 - 15:41
#22
okay, så vil jeg prøve at ændre det til datetime, men så kan jeg ikke gemme klokken 00:00:00 og det kan give problemer et andet sted!
23. februar 2008 - 15:45
#23
du kan jo godt gemme klokkeslættet . Hvis du så vil have at det skal formateres efter du har hentet det ud, er det jo simpelt nok. Men lad os håbe du kan sortere med feltet som datetime:>
23. februar 2008 - 15:45
#24
vil du komme med et svar for sorteringen virker fint med datetime!
23. februar 2008 - 15:51
#25
ja det skulle den jo også helst:) Ked af at det skulle tage så lang tid, men troede allerede fra starten af at det var en datetime felt da du brugte disse # klammer. Held og lykked med projektet!
Kurser inden for grundlæggende programmering