Avatar billede weis Nybegynder
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?
Avatar billede jokkejensen Novice
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
Avatar billede weis Nybegynder
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.
Avatar billede weis Nybegynder
22. februar 2008 - 15:11 #3
fejl jeg skulle have haft:

3. Maj 2008
17. Maj 2008
24. Maj 2008
Avatar billede jokkejensen Novice
22. februar 2008 - 15:27 #4
order by.. kig lige nærmere på den.. :)

/JJ
Avatar billede weis Nybegynder
22. februar 2008 - 15:44 #5
du kunne ikke komme med et hint for jeg ved ikke hvad der skal gøres!!!
Avatar billede jansangill Nybegynder
23. februar 2008 - 11:44 #6
Prøv med "ORDER BY startd DESC"

Det skal jo vel virke med en almindelig order by.
Avatar billede weis Nybegynder
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() & "#"
Avatar billede jansangill Nybegynder
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?
Avatar billede weis Nybegynder
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
Avatar billede jansangill Nybegynder
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
Avatar billede weis Nybegynder
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?
Avatar billede jansangill Nybegynder
23. februar 2008 - 15:05 #12
Okay, hvad får du ud af kalSQL ved hver af de foreslag jeg gav dig?
Avatar billede weis Nybegynder
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
Avatar billede jansangill Nybegynder
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
Avatar billede weis Nybegynder
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
Avatar billede jansangill Nybegynder
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
Avatar billede jansangill Nybegynder
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?
Avatar billede jansangill Nybegynder
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?
Avatar billede weis Nybegynder
23. februar 2008 - 15:28 #19
det er et tekstfelt
Avatar billede jansangill Nybegynder
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"
Avatar billede jansangill Nybegynder
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"
Avatar billede weis Nybegynder
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!
Avatar billede jansangill Nybegynder
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:>
Avatar billede weis Nybegynder
23. februar 2008 - 15:45 #24
vil du komme med et svar for sorteringen virker fint med datetime!
Avatar billede jansangill Nybegynder
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!
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