webForumDet fria alternativet

Plocka ut poster mellan 2 klockslag

ASP

3 svar · 264 visningar · startad av Rossifumi

Medlem sedan okt. 20001 558 inlägg
Frågan#1

Hejsan jag håller på med en kalender.
För varje heltimma är uppdelad i två (se bild)

Mitt problem kommer när jag vill plocka ut just det klockslaget i loopen.

Kod:

<table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
	<td colspan="2" align="center" class="header" bgcolor="#E0DFE3" height="30" background="img/bg_head.gif"><% = sToday %></td>
</tr>
<%
datStartTid = FormatDateTime(CDate("2002-01-01 00:00"),4)
For i = 1 To 24

If Left(datStartTid,2) <= 04 OR Left(datStartTid,2) => 18 Then
	sBgImage = "img/bg_kalender_b.gif"
Else
	sBgImage = "img/bg_kalender.gif"
End If

sTid1 = datStartTid
sTid2 = FormatDateTime(DateAdd("n", 60, datStartTid),4)

SQL = "SELECT * FROM kalender WHERE Datum = sDate AND (Klockslag BETWEEN #" & sTid1 & "# AND #" & sTid2 & "#)"
Set oRS = strCon.Execute(SQL)

Response.Write "<tr>" & VbCrLf
Response.Write "<td rowspan=""2"" width=""40"" height=""40"" align=""left"" valign=""middle""><img src=""img/klockan/" & Left(datStartTid,2) & ".gif"" width=""40"" height=""40""></td>" & VbCrLf
Response.Write "<td width=""660"" height=""20"" background=""" & sBgImage & """>&nbsp;</td>" & VbCrLf
Response.Write "</tr>" & VbCrLf
Response.Write "<tr>" & VbCrLf
Response.Write "<td width=""660"" height=""20"" background=""" & sBgImage & """>&nbsp;</td>" & VbCrLf
Response.Write "</tr>" & VbCrLf

datStartTid = FormatDateTime(DateAdd("n", 60, datStartTid),4)
Next
%>
</table>

Den klagar på raden: Set oRS = ...

Feltyp:
Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/Default.asp, line 42

Är det någon som ser vad som är fel???

Medlem sedan juni 200032 967 inlägg
#2

Det känns som att det är följande:

...WHERE Datum = sDate ...

Är sDate ett fält i din tabell, eller en variabel?
Annars: kontrollera utskriften av SQL-frågan med Response.write.

Mvh,

Medlem sedan okt. 20001 558 inlägg
#3

OK, tack @nders...

Men nu fick jag ett annat problem...

Hela sidkoden

<!-- #include file = "includes/openDB.asp" -->
<%
If Request.QueryString("display_date") = "" Then
	sDate = Date
	sToday = UCase(WeekDayName(WeekDay(Now))) & "EN den " & Day(Now) & " " & MonthName(Month(Now)) & ", " & Year(Now)
End If
%>

<html>
<head>
<title>TVÅ GRÄVARE</title>

<style type="text/css">
<!--
	td,tr,body {font-family: Trebuchet MS, Verdana; font-size: 12px; color: black;}
	.header {font-family: Trebuchet MS, Verdana; font-size: 14px; color: black; font-weight: bold;}
-->
</style>

</head>

<body bgcolor="#FFFFFF">

<table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
	<td colspan="2" align="center" class="header" bgcolor="#E0DFE3" height="30" background="img/bg_head.gif"><% = sToday %></td>
</tr>
<%
datStartTid = FormatDateTime(CDate("2002-01-01 00:00"),4)
For i = 1 To 24

If Left(datStartTid,2) <= 04 OR Left(datStartTid,2) => 18 Then
	sBgImage = "img/bg_kalender_b.gif"
Else
	sBgImage = "img/bg_kalender.gif"
End If

sTid1 = datStartTid
sTid2 = FormatDateTime(DateAdd("n", 60, datStartTid),4)

SQL = "SELECT * FROM kalender WHERE Datum = #" & CDate(sDate) & "# AND (Klockslag BETWEEN #" & sTid1 & "# AND #" & sTid2 & "#)"
Set oRS = strCon.Execute(SQL)

If Not oRS.EOF Then
	sNot = oRS("Notering")
Else
	sNot = ""
End If

Response.Write "<tr>" & VbCrLf
Response.Write "<td rowspan=""2"" width=""40"" height=""40"" align=""left"" valign=""middle""><img src=""img/klockan/" & Left(datStartTid,2) & ".gif"" width=""40"" height=""40""></td>" & VbCrLf
Response.Write "<td width=""660"" height=""20"" background=""" & sBgImage & """>&nbsp;" & sNot & "</td>" & VbCrLf
Response.Write "</tr>" & VbCrLf
Response.Write "<tr>" & VbCrLf
Response.Write "<td width=""660"" height=""20"" background=""" & sBgImage & """>&nbsp;</td>" & VbCrLf
Response.Write "</tr>" & VbCrLf

datStartTid = FormatDateTime(DateAdd("n", 60, datStartTid),4)
Next
%>
</table>
</body>
</html>

I databasen finns två poster, en 13:00 och en 14:00.
Men ifall jag kollar på sidan nu så skrivs den 13:00 ut både 12:00, 13:00 och 23:00. Medans den 14:00 bara skrivs ut 14:00...

Varför???

Medlem sedan okt. 20001 558 inlägg
#4

Tror att jag löste det själv...

Ändrade:

sTid1 = datStartTid
sTid2 = FormatDateTime(DateAdd("n", 60, datStartTid),4)

Till:

sTid1 = datStartTid
sTid2 = FormatDateTime(DateAdd("n", 59, datStartTid),4)

Och det verkar funka...
Tack @nders :e

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