webForumDet fria alternativet

konstigt fel med if-sats

ASP

5 svar · 231 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Min If-sats:


If aDagar((iRaderLoop-1)*7 + iKolumnerLoop) = Day(Date()) Then 

bgcolor3 = "#FFFFFF"

Else 

bgcolor3 = "#FFF7CF"

End If

På denna If-sats får jag detta felmeddelandet:

Feltyp:
Körningsfel i Microsoft VBScript (0x800A01F4)
Odefinierad variabel: 'bgcolor3'

Mer sammanhängade kod:

<%

 
Dim SQL
SQL = "SELECT * FROM kalender WHERE Manad = "& Month(dbDatum)&"  AND Ar = "& Year(dbDatum) &" ORDER BY Dag ASC"

Recset.Open SQL, Connect, 1, 2

%>
  <%
 
Dim iAntalInbokningar
dim datumet
iAntalInbokningar = 0

Dim iRaderLoop, iKolumnerLoop
 For iRaderLoop = 1 to iRader
   Response.Write "<tr>"
   For iKolumnerLoop = 1 to iKolumner
     If aDagar((iRaderLoop-1)*7 + iKolumnerLoop) > 0 Then
    

If aDagar((iRaderLoop-1)*7 + iKolumnerLoop) = Day(Date()) Then 

bgcolor3 = "#FFFFFF"

Else 

bgcolor3 = "#FFF7CF"

End If

       
       Response.Write "<td style='BORDER-BOTTOM: #FFFFFF 2px solid; BORDER-TOP: #000000 0px solid; BORDER-RIGHT: #FFFFFF 2px SOLID; BORDER-LEFT: #000000 0px solid' valign=top bgcolor=#FFFFFF align=right width=""14%"" & height=" & FormatPercent(1/iRader,0) & ">"
       Response.Write "<table cellspacing=0 cellpadding=0 border=0 " & "width=""100%"">"

       Response.Write "<tr><td align=right valign=top><b>"
       Response.Write "<b>"
       Response.Write aDagar((iRaderLoop-1)*7 + iKolumnerLoop)
       Response.Write "</b>"
       Response.Write "</b></td></tr>"

   If Not Recset.EOF Then
     If Recset("Dag") = aDagar((iRaderLoop-1)*7 + iKolumnerLoop) Then

       Response.Write "<tr  height=""100%""><td valign=top align=center>"
       Response.Write "<font size=1 face=verdana>"%>
              <a href="javascript:show('show.asp?ar=<%=RecSet("Ar")%>&manad=<%=RecSet("Manad")%>&dag=<%=RecSet("Dag")%>');">Händelser</a>
       <%iAntalInbokningar  = iAntalInbokningar + 1

       Response.Write "</font>"        
       Response.Write "</td></tr>"

     End If
    End If

    Response.Write "</table>"
    Response.Write "</td>"
    Else
        Response.Write "<td  bgcolor=#ffffff>&nbsp;</td>"
    End If
  Next

  Response.Write "</tr>"
Next

%>

</table>

Vad kan det vara för fel?

Medlem sedan mars 20015 287 inlägg
#2

Om inte din första If-sats uppfylls kommer du inte in i loopen så att bgcolor3 kan få ett värde. Pröva att lägga in:

bgcolor3 = "#FFFFFF"

någonstans högt uppe på sidan (typ där du dimmar din sql) för att se om det kan vara det som är felet.

Medlem sedan feb. 20011 498 inlägg
#3

Har lagt den på alla möjliga ställen men inget fungerar.

Medlem sedan juni 200032 967 inlägg
#4

Om du har med option explicit så måste du dim:a alla variabler.
Felmeddelandet tyder på det.

Alltså: Dim bgcolor3 på lämpligt ställe.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#5

Har löst problemet, gjorde om en rad till så här:

<td style="BORDER-BOTTOM: #FFFFFF 2px solid; BORDER-TOP: #000000 0px solid; BORDER-RIGHT: #FFFFFF 2px SOLID; BORDER-LEFT: #000000 0px solid" valign=top bgcolor="#<%If aDagar((iRaderLoop-1)*7 + iKolumnerLoop) = Day(date()) Then%>FFFFFF<%else%>FFF7CF<%End If%>" align=right width="14%" height=<%=FormatPercent(1/iRader,0)%>>
Medlem sedan feb. 20011 498 inlägg
#6

Tack @nders, jag använder ursprungskoden istället och lägger till

dim bgcolor3

:birp

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)