Avatar billede tblaster Nybegynder
26. februar 2003 - 18:31 Der er 11 kommentarer og
1 løsning

Quick help plz

Hvad er der lige galt i denne kode?

If session("Id") = 3 Then
  if not rs.EOF then
    start = rs("tid")
  else
    RTime = 0
  end if
  RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale

  If TTime = RTime And rs("lokalenr") >< 2 Then
    strKommentar = rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
    rs.movenext
  Else
    ' Check for frokostpause
  If not booWeekend and (TTime >= 1130 and TTime <= 1300) then
      strKommentar = "Kantinen serverer frokost"
    else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
    End If
  End if
  SkrivLinie strTid, strKommentar
  ' Tiden i næste linie
  MCnt = MCnt + 30
  if (MCnt = 60) then
    MCnt = 0
    TCnt = TCnt + 1
  end if
End If

Den virker fint på nær når den har udskrevet rækker med lokalenr = 1 så stopper den og fortsætter ikke med at skrive tabellen færdig!
Avatar billede tblaster Nybegynder
26. februar 2003 - 18:33 #1
Den melder følgende fejl:
error '80020009'
Exception occurred.
I denne linje:
If TTime = RTime And rs("lokalenr") >< 2 Then
Avatar billede tblaster Nybegynder
26. februar 2003 - 18:37 #2
Følgende har jeg kørende efter overstående kode og når jeg køre med en session("id") <> 3 så er der ingen fejl i systemet!

If session("Id") <> 3 Then
  if not rs.EOF then
    start = rs("tid")
  else
    RTime = 0
  end if
  RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale

  If TTime = RTime Then
    strKommentar = rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
    rs.movenext
  Else
    ' Check for frokostpause
  If session("Id") <> 2 Then
    if not booWeekend and (TTime >= 1130 and TTime <= 1300) then
      strKommentar = "Kantinen serverer frokost"
    else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
    End If
  else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
  End If
  End if
  SkrivLinie strTid, strKommentar
  ' Tiden i næste linie
  MCnt = MCnt + 30
  if (MCnt = 60) then
    MCnt = 0
    TCnt = TCnt + 1
  end if
End If
Avatar billede erikjacobsen Ekspert
26. februar 2003 - 18:46 #3
If TTime = RTime And rs("lokalenr") <> 2 Then

??
Avatar billede tblaster Nybegynder
26. februar 2003 - 18:49 #4
Kravet siger at tiden (eks 10.00 eller 12:00) skal være samme tid som den i databasen og derudover at lokalenumret skal være 2!
Avatar billede tblaster Nybegynder
26. februar 2003 - 18:51 #5
Og ja det er i den der er fejl ... det skriver den!
Avatar billede erikjacobsen Ekspert
26. februar 2003 - 18:59 #6
Du er vel kommet forbi EOF, måske...
Avatar billede tblaster Nybegynder
26. februar 2003 - 19:02 #7
Her er det hele i en samlet version ...

<%
function CStr2(Value)
  if Value < 10 then
    CStr2 = "0" & CStr(Value)
  else
    CStr2 = CStr(Value)
  end if
end function

TCnt = 7 ' Starttid
MCnt = 0 ' Startminutter

for Cnt = 1 to 34 ' Antal linier
  strtid = CStr2(TCnt) & ":" & CStr2(MCnt)
  TTime = TCnt * 100 + MCnt ' Tiden der skal udskrives nu

If session("Id") = 3 Then
  if not rs.EOF then
    start = rs("tid")
  else
    RTime = 0
  end if
  RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale

  If rs("lokalenr") >< 2 AND TTime = RTime Then
    strKommentar = rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
    rs.movenext
  Else
    ' Check for frokostpause
  If not booWeekend and (TTime >= 1130 and TTime <= 1300) then
      strKommentar = "Kantinen serverer frokost"
    else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
    End If
  End if
  SkrivLinie strTid, strKommentar
  ' Tiden i næste linie
  MCnt = MCnt + 30
  if (MCnt = 60) then
    MCnt = 0
    TCnt = TCnt + 1
  end if
End If
%>

<%
If session("Id") <> 3 Then
  if not rs.EOF then
    start = rs("tid")
  else
    RTime = 0
  end if
  RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale

  If TTime = RTime Then
    strKommentar = rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
    rs.movenext
  Else
    ' Check for frokostpause
  If session("Id") <> 2 Then
    if not booWeekend and (TTime >= 1130 and TTime <= 1300) then
      strKommentar = "Kantinen serverer frokost"
    else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
    End If
  else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
  End If
  End if
  SkrivLinie strTid, strKommentar
  ' Tiden i næste linie
  MCnt = MCnt + 30
  if (MCnt = 60) then
    MCnt = 0
    TCnt = TCnt + 1
  end if
End If
%>
Avatar billede olhansen Nybegynder
26. februar 2003 - 22:01 #8
Halløj - kig lige her:

If session("Id") <> 3 Then
  if not rs.EOF then
    start = rs("tid")
  else
    RTime = 0
  end if
  RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale



start er ikke initialiseret hvis RS.EOF=TRUE
Flyt den sidste linie ind i din if blok.
Avatar billede tblaster Nybegynder
27. februar 2003 - 21:10 #9
Jeg forstår ikke hvad du mener ... hvad er det jeg skal flytte ind i min if?
Avatar billede tblaster Nybegynder
27. februar 2003 - 21:14 #10
Jeg tror jeg fandt ud af hvad du mener ... følgende ikke:
If session("Id") = 3 Then
  if not rs.EOF then
    start = rs("tid")
    RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale
  else
    RTime = 0
  end if

Det har jeg lige ændret den til og får nu denne fejl:
error '80020009'
Exception occurred.

I denne linje:
If rs("lokalenr") >< 2 AND TTime = RTime Then
Avatar billede erikjacobsen Ekspert
27. februar 2003 - 21:20 #11
det er sikkert, dvs måske, fordi rs.EOF er sand når
du aflæser rs("lokalenr") - jeg husker ikke hvad
beskedden plejer at være. Men du tester jo
for rs.EOF lidt længere oppe.

Må jeg iøvrigt gratulere dig for den værste gang
spagetti-kode jeg længe har set. Den kan jeg
sagtens bruge til at vise frem som et dårligt
eksempel.
Avatar billede tblaster Nybegynder
01. marts 2003 - 15:57 #12
Erikjacobsen ... hvis du syntes det er sådan en spagetti-kode hvad så med at du fandt fejlen og fiksede koden så den ikke er så spagetti agtig! Så vil jeg gerne give dig 200 point for det!
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