Avatar billede dj-sejler Praktikant
05. april 2004 - 14:47 Der er 20 kommentarer og
1 løsning

udtræk af dato til kalender ved event over flere dage

Hej...

Jeg har lavet en lille side der kan hente data ud fra databasen 7 dag frem.
Den henter dog kun ifølge startdagen, hvor jeg gerne vil have den til at udskrive en post for hverdag... hvis I forstå...

Min side:
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
'    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM kalender where eventtid = " & mydate_tredje & " and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
'    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
'        Conn.Close
'        Set Conn = Nothing
%>


eventtid og mydate_tredje er på følgende form: 05042004 (altså 05-04-2004)

jeg ville så gerne have at den, for de dage hvor "tildato" er større end eventtid og skulle udskrive feltet besked...

Er det for sort? eller kan I hjælpe?
Avatar billede dj-sejler Praktikant
05. april 2004 - 14:50 #1
Jeg er i tvivl om hvordan jeg kan/skal gemme "tildato"'en i databasen, så jeg kan bruge den...
Avatar billede fennec Nybegynder
05. april 2004 - 14:52 #2
strSQL = "SELECT * FROM kalender where eventtid >= " & mydate_tredje & " and eventtid < " & dateadd("d",7,mydate_tredje) & " and offentlig = 'ja'"
Avatar billede fennec Nybegynder
05. april 2004 - 14:55 #3
Glem den. Den dur ikke....
Du skal gemme tildatoen også (eventtidTil). På hver dag skal du så bruge denne sql:

strSQL = "SELECT * FROM kalender where (eventtid >= " & mydate_tredje & " or eventtidTil <= " & mydate_tredje & ") and offentlig = 'ja'"
Avatar billede fennec Nybegynder
05. april 2004 - 14:58 #4
Dur heller ikke.... Jeg tænker ikke helt klart i øjeblikket :o)

strSQL = "SELECT * FROM kalender where (eventtid <= " & mydate_tredje & " and eventtidTil >= " & mydate_tredje & ") and offentlig = 'ja'"

Så skulle den være der..... Håber jeg :o)
Avatar billede dj-sejler Praktikant
05. april 2004 - 15:01 #5
Jeg får denne fejl:

ODBC driver does not support the requested properties.

på hvilken form skal datoen "eventtidTil" være gemt? den samme som de andre?
Avatar billede dj-sejler Praktikant
05. april 2004 - 15:02 #6
samme fejl... :(
Avatar billede fennec Nybegynder
05. april 2004 - 15:03 #7
eventtidTil (og eventtid) skal være datetime formatet i databasen.
Avatar billede dj-sejler Praktikant
05. april 2004 - 15:05 #8
altså som 04-05-2004 ?
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 15:07 #9
Kan du ik bruge datediff funktionen ?

<% dim idag, dato, forskel, udskriv
  idag = date
  ' dato f.eks :
  dato = "08-03-2002"
  ' forskel fra dagen
  forskel = DateDiff("d",dato,idag)
%>

Og så hvis forskel >= 7 then blablabla
Avatar billede fennec Nybegynder
05. april 2004 - 15:12 #10
Ikke på den måde.
Der er forskellige datatyper felter i databasen kan have. Tal (int,float..), Tekst (char, nvarchar...), Datoer (datetime, longdate, shortdate...) osv. Afhængig af din database skal du bruge det korte datoformat, som kun består af dag,måned og år (datetime(MySQL), Kort Datoformat (Access))
Avatar billede dj-sejler Praktikant
05. april 2004 - 15:23 #11
hmm... nu står den på kort datoform i Access... men nu udskriver den ikke hvad der står i besked feltet...
Avatar billede fennec Nybegynder
05. april 2004 - 15:29 #12
vi skal lige have # rundt om datoerne (det er noget Access skal have. Alle andre bruger ')

strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_tredje & "# and eventtidTil >= #" & mydate_tredje & "#) and offentlig = 'ja'"
Avatar billede dj-sejler Praktikant
05. april 2004 - 15:59 #13
nu har jeg ændret alle mine udskrivninger... men der sker ikke noget...
Avatar billede fennec Nybegynder
05. april 2004 - 16:19 #14
kan du ikke smide koden op, som du har den nu???
Avatar billede dj-sejler Praktikant
05. april 2004 - 16:21 #15
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
'    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_tredje & "# and eventtidTil >= #" & mydate_tredje & "#) and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
'    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
'        Conn.Close
'        Set Conn = Nothing
%>

kan ses på http://net-lunden.dk/kalender/
Avatar billede fennec Nybegynder
05. april 2004 - 19:33 #16
Det ser rigtigt ud, så jeg vil tro det er datoformatet der er problemet. Access plejer at at ville tage dd-mm-yyyy.

Det ser ud som om du roder lidt med formaterne i starten, så tjek lige hvilket format du bruger. Hvis Access ikke vil tage dd-mm-yyyy formatet, så prøv med nogle andre. yyyy-mm-dd, yyyymmdd....
Avatar billede dj-sejler Praktikant
05. april 2004 - 19:46 #17
jeg tror der er lidt galt med sql-sætningen alligevel...
jeg får ikke rigtig noget ud ad det...

kig her lige om lidt: http://net-lunden.dk/familie/?side=minkalender

samlet script:

<%
Dim MyDate
MyDate = Date

MyDate1 = Mydate+1
MyDate2 = Mydate+2
MyDate3 = Mydate+3
MyDate4 = Mydate+4
MyDate5 = Mydate+5
MyDate6 = Mydate+6

mydate_forste = replace(Mydate, "-", "/")
mydate_anden  = replace(Mydate1, "-", "/")
mydate_tredje = replace(Mydate2, "-", "/")
mydate_fjerde = replace(Mydate3, "-", "/")
mydate_femte  = replace(Mydate4, "-", "/")
mydate_sjette = replace(Mydate5, "-", "/")
mydate_syvene = replace(Mydate6, "-", "/")

Function dansk(dato)
arrDag = Split(",mandag,tirsdag,onsdag,torsdag,fredag,lørdag,søndag",",")
arrMaaned = Split(",januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december",",")
dansk = arrDag(Weekday(dato,VbMonday)) & " d. " & Day(dato) & ". " & arrMaaned(Month(dato)) & " " & year(dato)
End Function

Function maaneden(dato)
arrMaaned = Split(",januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december",",")
maaneden = arrMaaned(Month(dato))
End Function

Function dagen(dato)
arrDag = Split(",mandag,tirsdag,onsdag,torsdag,fredag,lørdag,søndag",",")
dagen = arrDag(Weekday(dato,VbMonday))
End Function

Function datoen(dato)
datoen = Day(dato) & "."
End Function
%>

    <table>
    <tr>
      <td valign="top" width="600">
        <table>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate)%> den <%=datoen(mydate)%>&nbsp;<%=maaneden(mydate)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_forste%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_forste & "# and eventtidTil >= #" & mydate_forste & "#) and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
%>
                </table>
          </td>
        </tr>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate1)%> den <%=datoen(mydate1)%>&nbsp;<%=maaneden(mydate1)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_anden%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_anden & "# and eventtidTil >= #" & mydate_anden & "#) and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")

    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
        if rs("tildato") = "" then
%>
                <tr>
                    <td class="news"><%=rs("besked")%></td>
                </tr>
<%

        elseif rs("tildato") >= mydate1 then
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%        end if
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
%>
                </table>
          </td>
        </tr>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate2)%> den <%=datoen(mydate2)%>&nbsp;<%=maaneden(mydate2)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_tredje%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
'    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_tredje & "# and eventtidTil >= #" & mydate_tredje & "#) and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
'    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
'        Conn.Close
'        Set Conn = Nothing
%>
                </table>
          </td>
        </tr>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate3)%> den <%=datoen(mydate3)%>&nbsp;<%=maaneden(mydate3)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_fjerde%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
'    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_fjerde & "# and eventtidTil >= #" & mydate_fjerde & "#) and offentlig = 'ja'"
'    strSQL = "SELECT * FROM kalender where dato = " & mydate_fjerde & " and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
'    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
'        Conn.Close
'        Set Conn = Nothing
%>
                </table>
          </td>
        </tr>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate4)%> den <%=datoen(mydate4)%>&nbsp;<%=maaneden(mydate4)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_femte%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
'    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_femte & "# and eventtidTil >= #" & mydate_femte & "#) and offentlig = 'ja'"
'    strSQL = "SELECT * FROM kalender where dato = " & mydate_femte & " and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
'    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
'        Conn.Close
'        Set Conn = Nothing
%>
                </table>
          </td>
        </tr>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate5)%> den <%=datoen(mydate5)%>&nbsp;<%=maaneden(mydate5)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_sjette%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
'    set conn = Server.CreateObject("Adodb.Connection")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_sjette & "# and eventtidTil >= #" & mydate_sjette & "#) and offentlig = 'ja'"
'    strSQL = "SELECT * FROM kalender where dato = " & mydate_sjette & " and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
'    conn.open strDSN
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
'        Conn.Close
'        Set Conn = Nothing
%>
                </table>
          </td>
        </tr>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=dagen(mydate6)%> den <%=datoen(mydate6)%>&nbsp;<%=maaneden(mydate6)%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%=mydate_syvene%>
                <table>
<%
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & mydate_syvene & "# and eventtidTil >= #" & mydate_syvene & "#) and offentlig = 'ja'"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%
        rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
%>
                </table>
          </td>
        </tr>
        </table>
      </td>
    </tr>
    </table>
Avatar billede dj-sejler Praktikant
05. april 2004 - 19:48 #18
som du kan se hvis du går ind på linket, står der ikke noget under hver dag... men i databasen står der altså noget.
eventtid og eventtidTil har følgende typografi: dd/mm/åååå
Avatar billede fennec Nybegynder
06. april 2004 - 08:31 #19
hvis du smider dette i toppen af dine sider bruger du dansk dato format. Gælder også dagsnavne og måneder:
session.lcid = 1030

du burde også udskrive de 7 dage med et loop istedet. Jeg har lavet en kode som burde gøre det samme. Den gør desuden brug af indbyggede dato funktioner i ASP:

<%
'sæt datoformat til dansk (dd-mm-yyyy)
session.lcid = 1030
'sæt startdato til "05-04-2004"
myDate = dateserial(2004,4,5)
Set rs = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/datalunden.mdb")
%>
<table>
  <tr>
    <td valign="top" width="600">
    <% for f = 0 to 6
        myDateNow = dateadd("d",f,myDate) %>
      <table>
        <tr class="linktitleline">
          <td colspan="2" valign="middle" class="linktitle"><%=WeekdayName(datepart("w",myDateNow))%> den <%= datepart("d",myDateNow)%>&nbsp;<%= MonthName(datepart("m",myDateNow))%>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><%= myDateNow %>
            <table>
<%
    strSQL = "SELECT * FROM kalender where (eventtid <= #" & myDateNow & "# and eventtidTil >= #" & myDateNow & "#) and offentlig = 'ja'"
    rs.Open strSQL, strDSN, 1
    Do While Not rs.EOF
%>
                <tr>
                    <td class="news"><%=rs("besked")%> - <%=rs("id")%></td>
                </tr>
<%    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
%>
            </table>
          </td>
        </tr>
      </table>
      <% next %>
    </td>
  </tr>
</table>
Avatar billede dj-sejler Praktikant
08. april 2004 - 23:15 #20
Det kan jeg ikke få til at virke...
Avatar billede dj-sejler Praktikant
01. juni 2004 - 20:34 #21
Har desværre ikke fået noget brugbart og må hellere lukke 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