Avatar billede steckel Nybegynder
28. marts 2006 - 09:30 Der er 29 kommentarer og
1 løsning

asp kalender med mySQL db

Nu sidder jeg og roder lidt med at få den her kalender til at virker, men kan ikke finde fejlen.

hele min kode ser sådan her ud

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DRIVER={MySql}; SERVER=databserne.dk; DATABASE= database_navn; UID=myusernavn; PWD=**************"
Conn.Open()

'------------------------------------------------------------------------------
IF Request("dato") = "" THEN
    dato = DATE
ELSE
    dato = Request("dato")
END IF
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
dato_maaned = month(dato)
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1,3,5,7,8,10,12
        dato_antal_dage_maaned = 31
    CASE 2
        IF year(dato) MOD 4 = 0 THEN
            dato_antal_dage_maaned = 29
        ELSE
            dato_antal_dage_maaned = 28
        END IF
    CASE 4,6,9,11
        dato_antal_dage_maaned = 30
END SELECT
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1
        maaned_frem = month(dato) + 1
        aar_frem = year(dato)
        maaned_tilbage = 12
        aar_tilbage = year(dato) - 1
    CASE 12
        maaned_frem = 1
        aar_frem = year(dato) + 1
        maaned_tilbage = month(dato) - 1
        aar_tilbage = year(dato)
    CASE ELSE
        maaned_frem = month(dato) + 1
        aar_frem = year(dato)
        maaned_tilbage = month(dato) - 1
        aar_tilbage = year(dato)
END SELECT
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1
        maaned_navn = "Januar"
    CASE 2
        maaned_navn = "Februar"
    CASE 3
        maaned_navn = "Marts"
    CASE 4
        maaned_navn = "April"
    CASE 5
        maaned_navn = "Maj"
    CASE 6
        maaned_navn = "Juni"
    CASE 7
        maaned_navn = "Juli"
    CASE 8
        maaned_navn = "August"
    CASE 9
        maaned_navn = "September"
    CASE 10
        maaned_navn = "Oktober"
    CASE 11
        maaned_navn = "November"
    CASE 12
        maaned_navn = "December"
END SELECT
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
dato_dag = day(dato)
'------------------------------------------------------------------------------
dato_foerste_mandag_maened = "01-" & month(dato) & "-" & year(dato)
dato_mandag_uge = (DatePart("W", dato_foerste_mandag_maened, VBMonday)) - 1
dato_uge = DatePart("WW", dato)
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
Response.Write "<b>" & maaned_navn & "(" & Ucase(Left(maaned_navn,3)) & ")" & ": " & dato & " (uge " & dato_uge & ") -" & "</b>" & " (dagsdato er: " & DATE & ").<br>"
'------------------------------------------------------------------------------

%>
<form method="POST" name="form_dato" action="kalender.asp">
<p>Skriv et dato:<br>
<input type="text" name="dato" size="20"><br>
<input type="submit" value="Send" name="B1"></p>
</form><br>
<a href="kalender.asp?dato=<%= "1-" & maaned_tilbage & "-" & aar_tilbage%>">Forige måned</a> -
<a href="kalender.asp?dato=<%= "1-" & maaned_frem & "-" & aar_frem%>">Næste måned</a><br><br>
<table border="1" width="100%">
<tr>
<th width="14%">&nbsp;M</th>
<th width="14%">&nbsp;T</th>
<th width="14%">&nbsp;O</th>
<th width="14%">&nbsp;T</th>
<th width="14%">&nbsp;F</th>
<th width="15%">&nbsp;L</th>
<th width="15%">&nbsp;S</th>
</tr>
</table>
<table border="0" width="100%">
<%
'-------------------------------------------------------------------------------
strSql = " "&_
"SELECT dato "&_
"FROM artikel "&_
"GROUP BY dato "&_
"HAVING (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------

z = 1
For y = 1 to 6
    Response.Write "<tr>"
    For x = 1 to 7
        Response.Write "<th width=""" & "14%" & """>"
        Response.Write "&nbsp;"
        If x <= dato_mandag_uge AND y = 1 Then
            Response.Write "&nbsp;"
            Elseif z > dato_antal_dage_maaned Then
            Response.Write "&nbsp;"
        Else
            z_dato = z & "-" & month(dato) & "-" & year(dato)
            Response.Write "<a href=""" & "kalender.asp?dato=" & z_dato & """>"
                If z_dato = day(DATE) & "-" & month(DATE) & "-" & year(DATE) THEN
                    Response.Write "<b><font color=" & """#FF0000""" & ">" & z & "</font></b>"
                ElseIf z = dato_dag Then
                    Response.Write "<b><font color=" & """#0000FF""" & ">" & z & "</font></b>"
                Else
                    Response.Write z
                End If
                Response.Write "</a>"
'-------------------------------------------------------------------------------
                Set RS = Conn.Execute(strSQL)

                IF rs.EOF = TRUE AND rs.BOF = TRUE THEN
                    ELSE
                        While NOT rs.EOF
                        IF day(rs("dato")) = z THEN
                            Response.Write " " & "<img border=""" & "0""" & "src=""" & "redbullet.gif""" & ">"
                        END IF
                        rs.Movenext
                        Wend
                END IF
'-------------------------------------------------------------------------------
                z = z + 1
            End If
            Response.Write "</th>"
    Next
Response.Write "</tr>"
Next
%>
</table><br>
<%
'-------------------------------------------------------------------------------
strSql = " "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE (DAY(dato) = '"& day(dato) &"' ) AND (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------

Set RS = Conn.Execute(strSQL)
IF rs.EOF = TRUE AND rs.BOF = TRUE THEN
    Response.Write "ingen artikler."
ELSE
    While NOT rs.EOF
    Response.Write " " & "<img border=""" & "0""" & "src=""" & "arrow-blk-fwd.gif""" & "> " & rs("rubrik") & " (" & rs("dato") & ")" & "<br>"
    rs.Movenext
    Wend
END IF

Conn.Close
Set Conn = Nothing
%>

Men hver gang jeg prøver at køre den skriver den dette:

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(dato) = '12' ) AND (MONTH(dato) = '1' ) AND (YEAR(dato) = '200
/ex/kalender.asp, line 169

Når jeg så fjerne koden "Set RS = Conn.Execute(strSQL)" så virker det hele fint på nær at jeg ikke kan trække noget ud af databasen.

Hjælp, jeg kan simplehen ikke finde ud af hvor fejlen er. :-/
Avatar billede eagleeye Praktikant
28. marts 2006 - 10:15 #1
Hvordan er datoen gemt i mysql?  Er det yyyy-mm-dd eller dd-mm-yyyy

Hvilken type kolonne er dato?
Avatar billede steckel Nybegynder
28. marts 2006 - 10:36 #2
Ja hvis jeg skriver

strSql = " "&_
"SET DATEFORMAT dmy "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE (DAY(dato) = '"& day(dato) &"' ) AND (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"

så giver den bare en anden fejl.. :-( som ser sådan her ud

Error Type:
ADODB.Connection.1 (0x80004005)
SQLState: S Native Error Code: 1193 [TCX][MyODBC]Unknown system variable 'DATEFORMAT'
/ex/kalender.asp, line 141
Avatar billede eagleeye Praktikant
28. marts 2006 - 10:44 #3
Skal det forståes sådan dato kolonnen er definet som TEXT eller VCHAR ?
Og du gemmer datoen som:  dd-mm-yyyy?
Avatar billede steckel Nybegynder
28. marts 2006 - 11:02 #4
in til vider bliver datoen gemt som vchar, kan godt være det er det jeg har gjort galt?? eller hvad?

lige pt blive datoen gemt som dmy...
Avatar billede eagleeye Praktikant
28. marts 2006 - 11:06 #5
Normalt ville man typsik bruge DATE typen for så kan man bruge date/time funktionerne direkte. mySQL bruger dato formatet yyyy-mm-dd så det er en god ide at gemme/overføre datoer i det format.

Man kan godt bruge vchar men så skal man konverter til DATE time eller bruge streng funktioner. Når du skriver dmy ville den 1/2/2006 stå som 1-2-2006 eller ?
Avatar billede steckel Nybegynder
28. marts 2006 - 11:13 #6
Okay, nu ser min kode såden her ud!

<%
'------------------------------------------------------------------------------
IF Request("dato") = "" THEN
    dato = DATE
ELSE
    dato = Request("dato")
END IF
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
dato_maaned = month(dato)
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1,3,5,7,8,10,12
        dato_antal_dage_maaned = 31
    CASE 2
        IF year(dato) MOD 4 = 0 THEN
            dato_antal_dage_maaned = 29
        ELSE
            dato_antal_dage_maaned = 28
        END IF
    CASE 4,6,9,11
        dato_antal_dage_maaned = 30
END SELECT
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1
        maaned_frem = month(dato) + 1
        aar_frem = year(dato)
        maaned_tilbage = 12
        aar_tilbage = year(dato) - 1
    CASE 12
        maaned_frem = 1
        aar_frem = year(dato) + 1
        maaned_tilbage = month(dato) - 1
        aar_tilbage = year(dato)
    CASE ELSE
        maaned_frem = month(dato) + 1
        aar_frem = year(dato)
        maaned_tilbage = month(dato) - 1
        aar_tilbage = year(dato)
END SELECT
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1
        maaned_navn = "Januar"
    CASE 2
        maaned_navn = "Februar"
    CASE 3
        maaned_navn = "Marts"
    CASE 4
        maaned_navn = "April"
    CASE 5
        maaned_navn = "Maj"
    CASE 6
        maaned_navn = "Juni"
    CASE 7
        maaned_navn = "Juli"
    CASE 8
        maaned_navn = "August"
    CASE 9
        maaned_navn = "September"
    CASE 10
        maaned_navn = "Oktober"
    CASE 11
        maaned_navn = "November"
    CASE 12
        maaned_navn = "December"
END SELECT
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
dato_dag = day(dato)
'------------------------------------------------------------------------------
dato_foerste_mandag_maened = "01-" & month(dato) & "-" & year(dato)
dato_mandag_uge = (DatePart("W", dato_foerste_mandag_maened, VBMonday)) - 1
dato_uge = DatePart("WW", dato)
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
Response.Write "<b>" & maaned_navn & "(" & Ucase(Left(maaned_navn,3)) & ")" & ": " & dato & " (uge " & dato_uge & ") -" & "</b>" & " (dagsdato er: " & DATE & ").<br>"
'------------------------------------------------------------------------------

%>
<form method="POST" name="form_dato" action="kalender.asp">
<p>Skriv et dato:<br>
<input type="text" name="dato" size="20"><br>
<input type="submit" value="Send" name="B1"></p>
</form><br>
<a href="kalender.asp?dato=<%= "1-" & maaned_tilbage & "-" & aar_tilbage%>">Forige måned</a> -
<a href="kalender.asp?dato=<%= "1-" & maaned_frem & "-" & aar_frem%>">Næste måned</a><br><br>
<table border="1" width="100%">
<tr>
<th width="14%">&nbsp;M</th>
<th width="14%">&nbsp;T</th>
<th width="14%">&nbsp;O</th>
<th width="14%">&nbsp;T</th>
<th width="14%">&nbsp;F</th>
<th width="15%">&nbsp;L</th>
<th width="15%">&nbsp;S</th>
</tr>
</table>
<table border="0" width="100%">
<%
'-------------------------------------------------------------------------------
strSql = " "&_
"SET DATEFORMAT ymd "&_
"SELECT dato "&_
"FROM artikel "&_
"GROUP BY dato "&_
"HAVING (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------

z = 1
For y = 1 to 6
    Response.Write "<tr>"
    For x = 1 to 7
        Response.Write "<th width=""" & "14%" & """>"
        Response.Write "&nbsp;"
        If x <= dato_mandag_uge AND y = 1 Then
            Response.Write "&nbsp;"
            Elseif z > dato_antal_dage_maaned Then
            Response.Write "&nbsp;"
        Else
            z_dato = z & "-" & month(dato) & "-" & year(dato)
            Response.Write "<a href=""" & "kalender.asp?dato=" & z_dato & """>"
                If z_dato = day(DATE) & "-" & month(DATE) & "-" & year(DATE) THEN
                    Response.Write "<b><font color=" & """#FF0000""" & ">" & z & "</font></b>"
                ElseIf z = dato_dag Then
                    Response.Write "<b><font color=" & """#0000FF""" & ">" & z & "</font></b>"
                Else
                    Response.Write z
                End If
                Response.Write "</a>"
'-------------------------------------------------------------------------------
                Set RS = Conn.Execute(strSQL)

                IF rs.EOF = TRUE AND rs.BOF = TRUE THEN
                    ELSE
                        While NOT rs.EOF
                        IF day(rs("dato")) = z THEN
                            Response.Write " " & "<img border=""" & "0""" & "src=""" & "redbullet.gif""" & ">"
                        END IF
                        rs.Movenext
                        Wend
                END IF
'-------------------------------------------------------------------------------
                z = z + 1
            End If
            Response.Write "</th>"
    Next
Response.Write "</tr>"
Next
%>
</table><br>
<%
'-------------------------------------------------------------------------------
strSql = " "&_
"SET DATEFORMAT ymd "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE (DAY(dato) = '"& day(dato) &"' ) AND (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------

Set RS = Conn.Execute(strSQL)
IF rs.EOF = TRUE AND rs.BOF = TRUE THEN
    Response.Write "ingen artikler."
ELSE
    While NOT rs.EOF
    Response.Write " " & "<img border=""" & "0""" & "src=""" & "arrow-blk-fwd.gif""" & "> " & rs("rubrik") & " (" & rs("dato") & ")" & "<br>"
    rs.Movenext
    Wend
END IF

Conn.Close
Set Conn = Nothing
%>

Men den giver samme fejl. det skal lige siges jeg har webhotel hos surftown, ved ikke om det har noget af sige?

Error Type:
ADODB.Connection.1 (0x80004005)
SQLState: S Native Error Code: 1193 [TCX][MyODBC]Unknown system variable 'DATEFORMAT'
/ex/kalender.asp, line 141
Avatar billede eagleeye Praktikant
28. marts 2006 - 11:21 #7
Har du rettet noget i databasen?
Prøv at rette disse:

strSql = " "&_
"SET DATEFORMAT ymd "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE (DAY(dato) = '"& day(dato) &"' ) AND (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"


Til dette:

strSql = " "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE (DAY(dato) = '"& day(dato) &"' ) AND (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
Avatar billede steckel Nybegynder
28. marts 2006 - 11:25 #8
Ja det har jeg skam også prøvet.. men så får jeg bare denne fejl:

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(dato) = '28' ) AND (MONTH(dato) = '3' ) AND (YEAR(dato) = '200
/ex/kalender.asp, line 169

men hvis jeg så fjerne den sætning her sætning "Set RS = Conn.Execute(strSQL)" fra koden jamen så virker det fint nok, lige ind til jeg kommer til en dag hvor jeg skal hive noget ud fra databasen, så viser den intet. :(
Avatar billede eagleeye Praktikant
28. marts 2006 - 11:35 #9
denne linie:
Set RS = Conn.Execute(strSQL)

Er den som udføre SQL sætningen så uden den vil den ikke hente noget fra databasen. Den fejler fordi der er noget i SQL sætningen som den ikke kan finde ud af.

Hvis du har dato kolonne som vchar vil funktionen DAY ikke virke da den virker på en date/time type.

Enten skal du ind i mysql databasen og rette dato til typen DATE(10) og rette de datoer der står i databasen så de er i formatet yyyy-mm-dd. Når du så indsætter en ny event i databasen skal dato være i formetet yyyy-mm-dd

Alternativt er at beholde det som vchar, men så skal du oplyse meget præssist hvordan du gemmer datoer i databasne for man er nok til at klippe lidt i strengen. Hvordan står datoerne?
01-02-2006 ?
1-2-2006 ?
1-2-8 ?
01022006 ?
010206 ?

Fordelen ved at bruge date typen er at man kan bruge datetime funkterne direkte og man kan sortere og få det man forventer - ORDER BY dato.

hvis du forsætter med et tekst fejl bør du også overveje om du ikke kan gemme i formatet yyyy-mm-dd for at det let at konverter til en date type da mySQL bruger yyyy-mm-dd som dato format.
Avatar billede steckel Nybegynder
28. marts 2006 - 11:50 #10
nu har jeg prøvet at lave den om til date.. men det hjalp stadig ikke.. :-P og nu står datoen i databasen til yyyy-mm-dd

men jeg får stadig samme fejl fra siden af.. :-/
Avatar billede eagleeye Praktikant
28. marts 2006 - 12:26 #11
hmm ok, hvad hvis du skriver det som:

strSql = " "&_
"SET DATEFORMAT ymd "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE dato = '"& year(dato) &"-"&Month(dato) & "-" & day(Dato) &"' "&_
"ORDER BY dato DESC"
Avatar billede steckel Nybegynder
28. marts 2006 - 12:39 #12
Nop, får samme fejl igen med at den ikke kender DATEFORMAT "Unknown system variable 'DATEFORMAT' "

men jeg lade lige mærke til om det kunne have noget at gøre med den her sætning
"
HAVING (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_"

om der overhovede skal stå having??

Og nu er der to forskellige men jeg regner med det er den nederest der er gal med selv om det er i den øverste der har having.. :-/
'-------------------------------------------------------------------------------
strSql = " "&_
"SET DATEFORMAT ymd "&_
"SELECT dato "&_
"FROM artikel "&_
"GROUP BY dato "&_
"HAVING (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------


'-------------------------------------------------------------------------------
strSql = " "&_
"SET DATEFORMAT ymd "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE (DAY(dato) = '"& day(dato) &"' ) AND (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------
Avatar billede eagleeye Praktikant
28. marts 2006 - 12:52 #13
hov det set datformat skulle ikke havde været med:

strSql = " "&_
"SELECT * "&_
"FROM artikel "&_
"WHERE dato = '"& year(dato) &"-"&Month(dato) & "-" & day(Dato) &"' "&_
"ORDER BY dato DESC"
Avatar billede steckel Nybegynder
28. marts 2006 - 14:29 #14
er det nu jeg skal kysse dig eller vil du bare have dine point... hehe :)

Ja det virker som du kan høre ;) thanks.
Avatar billede eagleeye Praktikant
28. marts 2006 - 15:24 #15
Så her kommer et svar.

Hvis du er en pige er kysset helt fint, hvis ikke holder vi os til point.. LOL
Avatar billede saudoo Nybegynder
28. marts 2006 - 20:20 #16
:D
Avatar billede steckel Nybegynder
28. marts 2006 - 21:40 #17
hvis du er der endnu... så har jeg endnu et problem.. :-S
Avatar billede eagleeye Praktikant
28. marts 2006 - 21:42 #18
ja jeg er her endnu, jeg kan prøve at hjælpe?
Avatar billede steckel Nybegynder
28. marts 2006 - 21:47 #19
For nu opdaget jeg at når man så tryk på linket til næste månede, virker det fint nok, men hvis man trykker igen så hopper den til 1/2/2006 og jeg kan ikke komme vider.. kun en mån frem, fra den jeg jeg startede med.

Og når jeg trykke tilbage virker den fint lige ind til man trykker igen, så hopper den et helt år tilbage... koden ser nu sådan her ud

<%
'------------------------------------------------------------------------------
IF Request("dato") = "" THEN
    dato = DATE
ELSE
    dato = Request("dato")
END IF
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
dato_maaned = month(dato)
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1,3,5,7,8,10,12
        dato_antal_dage_maaned = 31
    CASE 2
        IF year(dato) MOD 4 = 0 THEN
            dato_antal_dage_maaned = 29
        ELSE
            dato_antal_dage_maaned = 28
        END IF
    CASE 4,6,9,11
        dato_antal_dage_maaned = 30
END SELECT
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1
        maaned_frem = month(dato) + 1
        aar_frem = year(dato)
        maaned_tilbage = 12
        aar_tilbage = year(dato) - 1
    CASE 12
        maaned_frem = 1
        aar_frem = year(dato) + 1
        maaned_tilbage = month(dato) - 1
        aar_tilbage = year(dato)
    CASE ELSE
        maaned_frem = month(dato) + 1
        aar_frem = year(dato)
        maaned_tilbage = month(dato) - 1
        aar_tilbage = year(dato)
END SELECT
'------------------------------------------------------------------------------
SELECT CASE dato_maaned
    CASE 1
        maaned_navn = "Januar"
    CASE 2
        maaned_navn = "Februar"
    CASE 3
        maaned_navn = "Marts"
    CASE 4
        maaned_navn = "April"
    CASE 5
        maaned_navn = "Maj"
    CASE 6
        maaned_navn = "Juni"
    CASE 7
        maaned_navn = "Juli"
    CASE 8
        maaned_navn = "August"
    CASE 9
        maaned_navn = "September"
    CASE 10
        maaned_navn = "Oktober"
    CASE 11
        maaned_navn = "November"
    CASE 12
        maaned_navn = "December"
END SELECT
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
dato_dag = day(dato)
'------------------------------------------------------------------------------
dato_foerste_mandag_maened = "01-" & month(dato) & "-" & year(dato)
dato_mandag_uge = (DatePart("W", dato_foerste_mandag_maened, VBMonday)) - 1
dato_uge = DatePart("WW", dato)
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
Response.Write "<b>" & maaned_navn & "(" & Ucase(Left(maaned_navn,3)) & ")" & ": " & dato & " <br>(uge " & dato_uge & ")" & "</b>" & "<br>"
'------------------------------------------------------------------------------

%>

<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="200">
<tr bgcolor="#666666">
<th width="14%"><font color="#FFFFFF">&nbsp;S</font></th>
<th width="14%"><font color="#FFFFFF">&nbsp;M</font></th>
<th width="14%"><font color="#FFFFFF">&nbsp;T</font></th>
<th width="14%"><font color="#FFFFFF">&nbsp;O</font></th>
<th width="14%"><font color="#FFFFFF">&nbsp;T</font></th>
<th width="15%"><font color="#FFFFFF">&nbsp;F</font></th>
<th width="15%"><font color="#FFFFFF">&nbsp;L</font></th>
</tr>
<%
'-------------------------------------------------------------------------------
strSql = " "&_
"SELECT dato "&_
"FROM artikel "&_
"GROUP BY dato "&_
"HAVING (MONTH(dato) = '"& month(dato) &"' ) AND (YEAR(dato) = '"& year(dato) &"' ) "&_
"ORDER BY dato DESC"
'-------------------------------------------------------------------------------

z = 1
For y = 1 to 6
    Response.Write "<tr>"
    For x = 1 to 7
        Response.Write "<th width=""" & "14%" & """>"
        Response.Write "&nbsp;"
       
        If x <= dato_mandag_uge AND y = 1 Then
            Response.Write "&nbsp;"
            Elseif z > dato_antal_dage_maaned Then
            Response.Write "&nbsp;"
        Else
            z_dato = z & "-" & month(dato) & "-" & year(dato)
           
'-------------------------------------------------------------------------------
                Set RS = Conn.Execute(strSQL)

                IF rs.EOF = TRUE AND rs.BOF = TRUE THEN
                    ELSE
                        While NOT rs.EOF
                        IF day(rs("dato")) = z THEN

                            Response.Write "<a href=""" & "kalender.asp?dato=" & z_dato & """>"

                        END IF
                        rs.Movenext
                        Wend
                END IF
'-------------------------------------------------------------------------------       

           
                If z_dato = day(DATE) & "-" & month(DATE) & "-" & year(DATE) THEN
                    Response.Write "<b><font color=" & """#FF0000""" & ">" & z & "</font></b>"
                ElseIf z = dato_dag Then
                    Response.Write "<b><font color=" & """#0000FF""" & ">" & z & "</font></b>"
                Else
                    Response.Write z
                End If
               
'-------------------------------------------------------------------------------
                Set RS = Conn.Execute(strSQL)

                IF rs.EOF = TRUE AND rs.BOF = TRUE THEN
                    ELSE
                        While NOT rs.EOF
                        IF day(rs("dato")) = z THEN

                            Response.Write "</a>"

                        END IF
                        rs.Movenext
                        Wend
                END IF
'-------------------------------------------------------------------------------       

               
                z = z + 1
            End If
            Response.Write "</th>"
    Next
Response.Write "</tr>"
Next
%>
</table>
<%
Response.Write "(dagsdato er: " & DATE & ")"
%>

<br>

<a href="kalender.asp?dato=<%= "1-" & maaned_tilbage & "-" & aar_tilbage%>">Forige måned</a> -
<a href="kalender.asp?dato=<%= "1-" & maaned_frem & "-" & aar_frem%>">Næste måned</a><br><br>

vil du have et link så du kan se hvordan den virker?
Avatar billede eagleeye Praktikant
28. marts 2006 - 21:53 #20
ja det kunne være fint med et link,
jeg gætter på den bytter rundt på dag og måned i ASP koden derfor kommer den kun til den 1-2-2006.

Ved du om der er Chili!ASP (unix) eller microsoft (windows) server koden køre på?
Avatar billede eagleeye Praktikant
28. marts 2006 - 21:55 #21
hvis du vil tjekke om det er det så kan du rette disse to linier:

<a href="kalender.asp?dato=<%= "1-" & maaned_tilbage & "-" & aar_tilbage%>">Forige måned</a> -
<a href="kalender.asp?dato=<%= "1-" & maaned_frem & "-" & aar_frem%>">Næste måned</a><br><br>

Til dette:

<a href="kalender.asp?dato=<%= maaned_tilbage & "-1-" & aar_tilbage%>">Forige måned</a> -
<a href="kalender.asp?dato=<%= maaned_frem & "-1-" & aar_frem%>">Næste måned</a><br><br>
Avatar billede steckel Nybegynder
28. marts 2006 - 21:55 #22
http://www.denrejsende.dk/ex/kalender.asp

det vil sige jeg skal finde en måde at skifte koden om igen.. :-S og nej ved ikke helt hvad det er for en maskine den køre på, har bare et webhotel hos surftown...
Avatar billede eagleeye Praktikant
28. marts 2006 - 22:05 #23
Ja det er serveren den køre mm-dd-yyyy som dato format som er UK format.

Den går fra idag Marts(MAR): 3/28/2006  ->  Januar(JAN): 1-4-2006

Den skriver også idag som 3/28/2006 og ikke 28/3/2006.

Når det er surtown er det Unix så kan man ikke rette session.LCID til DK format.
Så koden skal tilpasses til det.
Avatar billede steckel Nybegynder
28. marts 2006 - 22:07 #24
hmmm okay, så vil jeg prøve at lege med det...*G* eller råber jeg lige om hjælp hvis det gør helt galt.. ;)
Avatar billede eagleeye Praktikant
28. marts 2006 - 22:12 #25
Du kan prøv at sætte denne i topen af din kode:
<%
Session.LCID = &H0407 ' specify Germany/German
%>

Den ændre det til tysk dato format som vist er det samme som dansk
Avatar billede eagleeye Praktikant
28. marts 2006 - 22:13 #26
ja det er det samme de bruger bare . og ikke / som dele tegn så behøver du ikke rette noget andet end du kan replace "." med "/" i dato:

IF Request("dato") = "" THEN
    dato = DATE
ELSE
    dato = Request("dato")
END IF
dato = replace(dato,".","/")
Avatar billede steckel Nybegynder
28. marts 2006 - 22:19 #27
Okay nu virker den.. nice.. men hvorfor er det lige jeg ikke kan bruge dansk??
Avatar billede eagleeye Praktikant
28. marts 2006 - 22:31 #28
Fordi det er Chili!ASP fra sun og det understytter umiddenart disse to (tysk/us):
http://ns7.webmasters.com/caspdoc/html/developing_international_applications.htm

Du kan evt. prøve at skrive til surftown support og høre om de kender til nyere information og evt. LCID værdien for DK format.
Avatar billede steckel Nybegynder
28. marts 2006 - 22:41 #29
ahhh okay... jamen det vil jeg så gøre... men jeg siger mange tak for hjælpen ;)
Avatar billede steckel Nybegynder
29. marts 2006 - 02:00 #30
så fik jeg den til at virke. som du kan se på siden www.denrejsende.dk så virker den faktis som den skal nu her... ;) jeg takker mange gange for hjælpen. :-P
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