Avatar billede sneakraid Nybegynder
01. juni 2006 - 13:03 Der er 12 kommentarer og
1 løsning

Event kalender

Hej exp.dk :)

Jeg er ved at lave en event kalender til en portal, men er kørt lidt fast. Når man indtaster et event, kan man vælge hvilken dato eventet bliver afholdt. Lagret i DB (Access)

Jeg skal så have lavet en liste med events som bliver afholdt fra i dag, og frem .. altså event som er afholdt, skal selvfølgelig ikke komme med i listen.
Avatar billede fennec Nybegynder
01. juni 2006 - 13:14 #1
set rs = conn.execute("select * from DinTable where datoKol>=date() order by datoKol"
Avatar billede sneakraid Nybegynder
01. juni 2006 - 13:25 #2
Jeg har oprettet et event og sat denne dato: 5/25/2006

Når jeg så bruger din (fennec) sql sætning der, udskriver den eventet alligevel. Hvilket den ikke burde, da datoen i dag ser sådan her ud: 06/01/2006
Avatar billede fennec Nybegynder
01. juni 2006 - 13:31 #3
Gemmer du datoen i et "tekst" felt eller i et "dato & klokkeslet". Kunne se ud til at du bruger et tekst felt, også kan du jo passende få det lavet om til et dato felt nu, inden der kommer mange informationer i tabellen...
Avatar billede sneakraid Nybegynder
01. juni 2006 - 13:47 #4
Det er "Dato & klokkeslet" datatype, med "Kort datoformat"-format. Så umiddelbart skulle det virke, men jeg får stadig udskrevet eventet :(
Avatar billede fennec Nybegynder
01. juni 2006 - 13:51 #5
Mærkligt...

Prøv lige med denne (læg mærke til at formatet skal være mm-dd-yyyy):
set rs = conn.execute("select * from DinTable where datoKol>=#05-31-2006# order by datoKol"
Avatar billede sneakraid Nybegynder
01. juni 2006 - 14:22 #6
Jeg skriver lige min kode, så kan du se lige præcis hvordan det er lavet, så er der ingen tvivl i hvert fald :)

<table style='font-family:Verdana; font-size:11px; color:#FFFFFF;' width='700' border='0' cellpadding='2' cellspacing='0'>
  <tr>
    <td width="362" bgcolor="#2b2b2b"><strong>Overskrift</strong></td>
    <td width="157" bgcolor="#2b2b2b"><strong>Dato</strong></td>
    <td width="169" bgcolor="#2b2b2b"><strong>Arrang&oslash;r</strong></td>
  </tr>
    <%
    Function ConvertDate(fDato)
    dim fYear,fMonth,fDay
      fYear = Year(fDato)
      fMonth = Right("0"&Month(fDato),2)
      fDay = Right("0"&Day(fDato),2)
      ConvertDate = fMonth &"/"& fDay &"/"& fYear
    End Function
   
    strDate = ConvertDate(Date)
    sqlGetArrangement = "SELECT * FROM Arrangementer WHERE Dato >= " & CDate(strDate) & " ORDER BY Dato DESC"
    Set rsGetArr = Conn.Execute(sqlGetArrangement)
   
    Do While Not rsGetArr.Eof
        Response.Write("<tr>")
        Response.Write("<td>" & rsGetArr("Overskrift") & "</td>")
        Response.Write("<td>" & rsGetArr("Dato") & "</td>")
        Response.Write("<td>" & rsGetArr("Arrangoer") & "</td>")
        Response.Write("</tr>")
    rsGetArr.MoveNext
    Loop
    %>
  <tr>
    <td bgcolor="#2b2b2b">&nbsp;</td>
    <td bgcolor="#2b2b2b">&nbsp;</td>
    <td bgcolor="#2b2b2b">&nbsp;</td>
  </tr>
</table>

Grunden til jeg bruger ConvertCate() er fordi min server udskriver følgende dato for i dag, hvis jeg bruger Date(): 01-06-2006 (dansk format)
Avatar billede fennec Nybegynder
01. juni 2006 - 14:27 #7
Brug den indbyggede date funktion i Access i stedet. Så skal du ikke bekymre dig om dato formatet:

sqlGetArrangement = "SELECT * FROM Arrangementer WHERE Dato >= date() ORDER BY Dato DESC"
Avatar billede fennec Nybegynder
01. juni 2006 - 14:29 #8
Desuden skal der # omkring når du angiver datoer i Access, så din kode skulle have været, hvis du går uden om Access date() funktionen:
sqlGetArrangement = "SELECT * FROM Arrangementer WHERE Dato >= #" & CDate(strDate) & "# ORDER BY Dato DESC"
Avatar billede fennec Nybegynder
01. juni 2006 - 14:31 #9
Og cDate skifter det tilbage igen, så den skal slet ikke være der. Sådan skal det se ud hvis du bruger datoen via ASP:

sqlGetArrangement = "SELECT * FROM Arrangementer WHERE Dato >= #" & ConvertDate(date()) & "# ORDER BY Dato DESC"
Avatar billede sneakraid Nybegynder
01. juni 2006 - 15:15 #10
Jeg anede ikke engang det med # og dato i access, så har jeg også lært noget nyt i dag. Tak for det fennec! :)

Smid et svar mester ;)
Avatar billede fennec Nybegynder
01. juni 2006 - 15:25 #11
Som ekstra bonus, kan jeg så fortælle at alle andre databaser bruger ' omkring datoer. Det er kun Access der bruger #.

.o) <-- One Eyed Jack
Avatar billede sneakraid Nybegynder
01. juni 2006 - 15:36 #12
Hehe tak skal du ha'. Det er jo altid godt at vide ;)
Avatar billede fennec Nybegynder
01. juni 2006 - 15:52 #13
Hvis du er rigtig smart så udvider du din ConvertDate funktion til at indsætte # tegnet. Så er det nemt at skifte database, da du bare skal opdatere din funktion til det nye format. Dette er en forkortet udgave af min SQLdate:

Function SQLDate(fDato)
dim fYear,fMonth,fDay
  fYear = Year(fDato)
  fMonth = Right("0"&Month(fDato),2)
  fDay = Right("0"&Day(fDato),2)
  SQLDate = "#"& fMonth &"-"& fDay &"-"& fYear &"#"
End Function

Jeg har delimiter (# eller ') og formatet til at blive bestemt af en config.asp fil, så alle mine indstillinger bliver bestemt heri.
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