Avatar billede jan2001 Nybegynder
30. januar 2008 - 18:18 Der er 6 kommentarer og
1 løsning

Min kalenderkode laver vrøvl

Jeg forsøger at lave en simpel webkalender. Jeg er ikke helt klar over om det er den rigtige måde jeg gør det på. Måske er det derfor det ikke vil virke. Den bliver ved med at give en fejl omkring next eller end.
Hvad ser forkert ud?
Avatar billede jan2001 Nybegynder
30. januar 2008 - 19:13 #1
Der kommer også lige lidt kode :)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
<%
    strDBPath = Server.MapPath("db1.mdb")
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"

maaned = month(date)
aar = year(date)

if len(maaned) = 1 then
  maaned = "0" & maaned
end if

dagbogrec = "select * from dag where Dato like '%-" & maaned & "-%' order by Dato;"
set rs = objConn.execute(dagbogrec)
%>

</head>

<body bgcolor="#3366CC" leftmargin="100" topmargin="100">
<%
function getDaysInMonth(strMonth,strYear)
dim strDays   
    Select Case cint(strMonth)
        Case 1,3,5,7,8,10,12:
            strDays = 31
        Case 4,6,9,11:
        strDays = 30
        Case 2:
        if  ((cint(strYear) mod 4 = 0  and  _
              cint(strYear) mod 100 <> 0)  _
              or ( cint(strYear) mod 400 = 0) ) then
              strDays = 29
        else
              strDays = 28
        end if   
    End Select
   
    getDaysInMonth = strDays
end function

dage = getDaysInMonth(month(date), year(date))
response.Write("<table border='1' width='400' bgcolor='FFFFFF' bordercolor='999999' cellspacing='0' cellpadding='0'><tr><td><div align='center' class='S-OverskriftStor'></div></td></tr></table><br>")
response.write("<table border='1' width='400' bgcolor='FFFFFF' bordercolor='999999' cellspacing='0' cellpadding='0'><tr><td><div align='center' class='S-Tekst'>" & monthname(month(date)) & "</div></td></tr></table><br>")
response.write("<table border='1' width='400' bgcolor='FFFFFF' bordercolor='999999' cellspacing='0' cellspacing='0'><tr class='S-Tekst'><td>Mandag</td><td>Tirsdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td><td>Lørdag</td><td>søndag</td></tr>")
d = 1

datoen = "1" & "-" & month(now) & "-" & year(now)
ugedag = weekday(datoen)

for raekke = 1 to 5
    response.write("<tr>")
  if raekke = 1 then
        for celle = 1 to ugedag-2
          response.write("<td>&nbsp;</td>")
        next

        for celle = ugedag-1 to 7
            if not rs.eof & rs("Dato") = d & "-" & maaned & "-" & aar then
             
                  response.write("<td bgcolor='#FF6600' class='S-Tekst'>noget<a href='dagbog_dag.asp?dag=" & d & "'>" & d & "</a></td>")
            else
                  response.write("<td class='S-Tekst'><a href='dagbog_dag.asp?dag=" & d & "'>" & d & "</a></td>")
            end if

            if not rs.eof then
              rs.movenext
            end if
            d = d + 1
        next

  else

        for celle = 1 to 7
            if not rs.eof & rs("Dato") = d & "-" & maaned & "-" & aar then
                  response.write("<td bgcolor='#FF6600' class='S-Tekst'>noget<a href='dagbog_dag.asp?dag=" & d & "'>" & d & "</a></td>")
              else if dage <= dage then
                  response.write("<td class='S-Tekst'><a href='dagbog_dag.asp?dag=" & d & "'>" & d & "</a></td>")
              else
                  response.Write("<td>&nbsp;<td>")
            end if
           
            if not rs.eof then
              rs.movenext
            end if
           
          d = d + 1
      next
  end if
        response.write("</tr>")
next
response.write("</table>")

%>
</body>
</html>
Avatar billede a1a1 Novice
30. januar 2008 - 19:59 #2
dagbogrec = "select * from dag where Dato like '%-" & maaned & "-%' order by Dato;"
er nok et problem, da access "kan finde på" at svare (alt efter server indstillinger) at en dato er f.eks. 2001/01/01 eller 2001.01.01
hvis dit dato felt er et "rigtigt" dato felt kan du bruge
dagbogrec = "select * from dag where Month(Dato)='" & maaned & "' order by Dato;"

prøv evt. at kigge på dette script
http://www.asp101.com/samples/download.asp?file=calendar%2Easp
Avatar billede mitbrugernavn Praktikant
30. januar 2008 - 21:50 #3
prøv at knække denne linie

            if not rs.eof & rs("Dato") = d & "-" & maaned & "-" & aar then
                  response.write("<td bgcolor='#FF6600' class='S-Tekst'>noget<a href='dagbog_dag.asp?dag=" & d & "'>" & d & "</a></td>")
              else
if dage <= dage then
                  response.write("<td class='S-Tekst'><a href='dagbog_dag.asp?dag=" & d & "'>" & d & "</a></td>")
              else
                  response.Write("<td>&nbsp;<td>")
            end if
end if
Avatar billede mitbrugernavn Praktikant
30. januar 2008 - 21:51 #4
else if dage <= dage then 'til

  else
if dage <= dage then

og smider et end if efter afsnittet
Avatar billede jan2001 Nybegynder
30. januar 2008 - 22:53 #5
Så virker det bedre. AF en eller anden grund vil en if sætning ikke tage to betingelse samtidig.
Mange tak til jer begge.
og læg gerne et svar så deler i pointene.
Avatar billede mitbrugernavn Praktikant
31. januar 2008 - 07:47 #6
super
Avatar billede a1a1 Novice
01. februar 2008 - 10:34 #7
godt du fik det til at virke
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