Den är inte där...
däremot finns ju fle meddelandet
Microsoft VBScript compilation error '800a040e'
'loop' without 'do'
/ovaasp/upptaget103.asp, line 38
Loop
^
137 svar · 3 703 visningar · startad av PLks · sida 4 av 7
hej wf jag har en tblKalender (Access 2003) med följande fält/egenskaper - id/räknare - datum/långformat - starttid/medellång tid - sluttid/medellång - aktivitet/text - motståndare - lokal/text Använder en formulär för att lägga in data. Datan vill jag sedan listapå rätt datum (dvs rätt tabellcell) Hur gör jag så jag täcker alla dess
Läs frågan i sin helhet →Den är inte där...
däremot finns ju fle meddelandet
Microsoft VBScript compilation error '800a040e'
'loop' without 'do'
/ovaasp/upptaget103.asp, line 38
Loop
^
Vad menar du med "den är inte där"? Det är den ju visst, åtminstone i den kod du visar??
Vad menar du med "den är inte där"? Det är den ju visst, åtminstone i den kod du visar??
jag menar att i "skarpa ver." på Brinkster är den inte där...
Ok. Hur ser hela den skarpa koden på Brinkster för den upptaget103.asp ut då?
Ok. Hur ser hela den skarpa koden på Brinkster för den upptaget103.asp ut då?
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<%
Session.LCID = 1053
Set minCon = Server.CreateObject("ADODB.Connection")
set rsBokad = Server.CreateObject("ADODB.Recordset")
minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\ovaasp\db\upptaget.mdb")
strSQL =" SELECT * FROM upptaget ORDER by ID DESC"
rsBokad.Open strSQL, minCon, 3, 3
Do While Not rsBokad.EOF
If Left(rsBokad("aktivitet"), 3) = "Trä" Then
Response.Write "<P>" & rsBokad("startDatum") & " " & rsBokad("aktivitet") & " "
Response.Write FormatDateTime(rsBokad("startTid"), 4) & " - "
Response.Write FormatDateTime(rsBokad("endTid"), 4) & " , " & rsBokad("lokal") & "<P>"
ElseIf Left(rsBokad("aktivitet"), 2) = "Ma" Then
Response.Write rsBokad("startDatum") & " " & rsBokad("aktivitet") & " mot "
Response.Write rsBokad("Mot") & " i " & rsBokad("lokal") & ", kl "
Response.Write FormatDateTime(rsBokad("startTid"),4) & "<P>"
Else If Right(strText, 3)= "Cup" Then
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "<BR>" & dTempDate & " " & rsBokad("aktivitet") & " i "
Response.Write rsBokad("lokal") & "<P>"
Next
Else
For d=startDatum to endDatum
Response.Write rsBokad("startDatum") & " " & rsBokad("aktivitet") & " i "
Response.Write rsBokad("lokal") & "<BR>"
Next
End if
rsBokad.MoveNext
Loop
rsBokad.Close
Set rsBokad = Nothing
minCon.Close
Set minCon = Nothing
%>
</body>
</html>
@nders skrev:
Då skulle jag ta bort if-satsen i loopen som kontrollerar om det är rätt månad och rätt dag, i så fall skriv ut, och lägga till dag och månad som villkor i SQL-frågan istället.
kan du månne ge ett exempel, typ hur du menar?
Nu har jag lyckats lista databasen och få det att se ut som jag vill
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<%
Session.LCID = 1053
Set minCon = Server.CreateObject("ADODB.Connection")
set rsBokad = Server.CreateObject("ADODB.Recordset")
minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\ovaasp\db\upptaget.mdb")
strSQL =" SELECT * FROM upptaget ORDER by ID ASC"
rsBokad.Open strSQL, minCon, 3, 3
Do While Not rsBokad.EOF
If Left(rsBokad("aktivitet"), 3) = "Trä" Then
Response.Write "<BR>" & rsBokad("startDatum") & " " & rsBokad("aktivitet") & " "
Response.Write FormatDateTime(rsBokad("startTid"), 4) & " - "
Response.Write FormatDateTime(rsBokad("endTid"),4) & ", " & rsBokad("lokal") & "<BR>"
ElseIf Left(rsBokad("aktivitet"), 2) = "Ma" Then
Response.Write "<P>" & rsBokad("startDatum") & " " & rsBokad("aktivitet") & " mot "
Response.Write rsBokad("Mot") & " i " & rsBokad("lokal") & ", kl "
Response.Write FormatDateTime(rsBokad("startTid"), 4) & "<P>"
ElseIf Right(rsBokad("aktivitet"), 3) = "Cup" Then
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "<P>" & dTempDate & " " & rsBokad("aktivitet") & " i "
Response.Write rsBokad("lokal") & "<BR>"
Next
ElseIf Right(rsBokad("aktivitet"), 3) = "Cam" Then
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "<P>" & dTempDate & " " & rsBokad("aktivitet") & " i "
Response.Write rsBokad("lokal") & "<BR>"
Next
Else
Response.Write rsBokad("startDatum") & " " & rsBokad("aktivitet") & " i "
Response.Write rsBokad("lokal") & "<BR>"
End if
rsBokad.MoveNext
Loop
rsBokad.Close
Set rsBokad = Nothing
minCon.Close
Set minCon = Nothing
%>
</body>
</html>
funkar hos Brinkster , frågan är:
@nders skrev:
Då skulle jag ta bort if-satsen i loopen som kontrollerar om det är rätt månad och rätt dag, i så fall skriv ut, och lägga till dag och månad som villkor i SQL-frågan istället
Är det detta du menade
strSQL =" SELECT * FROM upptaget WHERE int(manad) = Month(rsBokad("startDatum")) AND iDag = Day(rsBokad("startDatum")) ORDER by ID ASC"
Om ja, hur får man/vi/jag med dTempDate ?
Nja, det var inte riktigt så jag menade. Du kan inte använda information från rsBokad, eftersom det recordsetet inte finns än. Jag hade tänkt mig något sånt här:
strSQL = "SELECT * FROM upptaget WHERE month(startDatum) = " & manad & " AND day(startDatum) = " & iDag & " ORDER by ID ASC"
Men jag är inte helt säker på datum funktionerna i Jet SQL (jag använder ju inte Access.)
På vilket sätt ska du ha med dTempDate? Det är ju en variabel som skapas med hjälp av datat från recordsetet.
är det bara tur eller är det ovanstående rätt med?
Normalt kan man säga att fungerar det så är det rätt, men det finns alltid (oftast iaf) bättre sätt att lösa saker och ting på. :)
mvh
@nders skrev:
På vilket sätt ska du ha med dTempDate? Det är ju en variabel som skapas med hjälp av datat från recordsetet.
så jag behöver inte bekymra mig för dTempDate, mer än
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Ok, jag sätter igång med arbetet att foga ihop till kalender...
Önska mig lycka till...
Här kommer 1:a resultatet av "syslöjden"
<%
Response.Write "<CENTER><FONT SIZE =""4""><B>" & FirstVersal(MonthName(manad)) & ", " & ar & "</B></FONT></CENTER>"
Response.Write "<CENTER><TABLE CLASS=""table"" CELLSPACING=""0"" CELLPADDING=""1"">"
For iDag = 1 to DatePart("d", DateSerial(ar, manad+1, 0))
aDagar(iDag) = WeekDayName(DatePart("w",ar & "-" & manad & "-" & iDag))
iWeekDay = DatePart("w",ar & "-" & manad & "-" & iDag)
Response.Write "<TR><TD CLASS=""tdleft"" ALIGN=""CENTER"" VALIGN=""BOTTOM""><CENTER><B><FONT SIZE=""5"">"
Response.Write iDag
Response.Write "</FONT></B></CENTER></TD><TD CLASS=""tdnamn"" VALIGN=""BOTTOM"">" & FirstVersal(aDagar(iDag)) & "</TD>"[red]
Set minCon = Server.CreateObject("ADODB.Connection")
set rsBokad = Server.CreateObject("ADODB.Recordset")
minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\ovaasp\db\upptaget.mdb")
strSQL = "SELECT * FROM upptaget WHERE month(startDatum) = " & manad & " AND day(startDatum) = " & iDag & " ORDER by ID ASC"
rsBokad.Open strSQL, minCon, 3, 3
Do While Not rsBokad.EOF
If Left(rsBokad("aktivitet"), 3) = "Trä" then
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", kl " & FormatDateTime(rsBokad("startTid"), 4) & " - "
Response.Write FormatDateTime(rsBokad("endTid"), 4) & " , " & rsBokad("lokal")
ElseIf Left(rsBokad("aktivitet"), 2) = "Ma" Then
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write " mot " & rsBokad("Mot")
Response.Write " i " & rsBokad("lokal") & ", kl "
Response.Write FormatDateTime(rsBokad("startTid"), 4)
ElseIf Right(rsBokad("aktivitet"), 3) = "Cup" Then
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", i " & rsBokad("lokal")
Next
ElseIf Right(rsBokad("aktivitet"), 3) = "Cam" Then
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", i " & rsBokad("lokal")
Next
Else
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", i " & rsBokad("lokal")
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write " i "
Response.Write rsBokad("lokal")
End if
rsBokad.MoveNext
Loop
rsBokad.Close
Set rsBokad = Nothing
minCon.Close
Set minCon = Nothing[/red]
If cint(manad) = Month(GeAllhelgon(ar)) AND iDag = Day(GeAllhelgon(ar)) then
Response.Write "</FONT></B></TD><TD CLASS=""tdhelg"" VALIGN=""BOTTOM"">"
Response.Write "Alla Helgons dag"
ElseIf int(manad) = Month(NewYearday(ar)) AND iDag = Day(NewYearday(ar)) then
Response.Write "</FONT></B></CENTER></TD><TD CLASS=""tdhelg"" VALIGN=""BOTTOM"">"
Response.Write "Nyårsdagen"
|
|
|
|
Else
Response.Write "</FONT></B></TD><TD CLASS=""tdhelg"" VALIGN=""BOTTOM""> </TD>"
End If
Response.Write "</FONT></TD><TD CLASS=""tdright"" ALIGN=""RIGHT"" VALIGN=""BOTTOM""><FONT SIZE=""3"">"
If iDag = 1 or iWeekDay = 2 Then
Response.Write " v " & datePart("ww",CDate(ar & "-" & manad & "-" & iDag ),2,2)
Else Response.Write " "
End If
Response.Write "</FONT></TD></TR>"
Next
Response.Write "</TABLE></CENTER>"
%>
ny kod är rödmarkerad
Får
Microsoft VBScript compilation error '800a0400'
Expected statement
/ovaasp/skrivbordskalender104.asp, line 325
End if
^
men har ju End If
320: For dTempDate = dStartDate to dEndDate
321:
322: Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
323: Response.Write " i "
324: Response.Write rsBokad("lokal")
325: End if
326: rsBokad.MoveNext
327: Loop
328:
329: rsBokad.Close
330: Set rsBokad = Nothing
Du måste se till att indentera koden ordentligt, annars kommer du få sådana fel i all evinnerlighet.
Med välindenterad kod är det mycket lättare att se vad man gjort fel.
@NDERS skrev:
Du måste se till att indentera koden ordentligt, annars kommer du få sådana fel i all evinnerlighet.
Och felet är...?
... lättare att se när du indenterat koden...
... hittar inte
så snälle :r hjälp mig så att jag kan sova inatt
hittad felet... Jippie!! så här skall det se ut!
Else
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", i " & rsBokad("lokal")
End if
rsBokad.MoveNext
Loop
rsBokad.Close
Set rsBokad = Nothing
minCon.Close
Set minCon = Nothing
Nu var jag lite för snabb.
Om ni går till nästa månad så ser de repeterade posterna konstiga ut =de skrivs ut i samma Tabellcell istället för i celler efter (under) varandra.
Jag har ändrar koden till
ElseIf Right(rsBokad("aktivitet"), 3) = "Cup" AND int(manad) = Month(dTempDate) AND iDag = Day(dTempDate) then dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", i " & rsBokad("lokal")
Next
Men,men... som nu kan se blev det nu konstigt inte bara (nästa månad) juni, utan även 25:maj(dubble postat den dagen)
Vad skall jag göra?
Snälla ASP-gurus, hoppas ni inte har tröttnat på mig än
Det verkar vara koden
ElseIf Right(rsBokad("aktivitet"), 3) = "Cup" Then
dStartDate = Cdate(rsBokad("startDatum"))
dEndDate = Cdate(rsBokad("endDatum"))
For dTempDate = dStartDate to dEndDate
Response.Write "</FONT></B></TD><TD CLASS=""tdcal"" VALIGN=""BOTTOM"">" & rsBokad("aktivitet")
Response.Write ", i " & rsBokad("lokal")
Next
som inte funkar
Har försökt ändra SQL-frågan till:
strSQL = "SELECT * FROM upptaget WHERE month(startDatum) = " & manad & " AND month(dTempDate)) = " & manad & " AND day(dTempDate) = " & iDag & " AND day(startDatum) = " & iDag & " ORDER by ID ASC"
Men får bara
Microsoft JET Database Engine error '80040e14'
Extra ) in query expression 'month(startDatum) = 5 AND month(dTempDate)) = 5 AND day(dTempDate) = 1 AND day(startDatum) = 1'./ovaasp/skrivbordskalender108.asp, line 289
rad 289: Do While Not rsBokad.EOF