Svært datoproblem
Problemet ligger i den første SQL, som udfører en handling, hvis Date() ligger mellem 2 datoer i db'en.Det virker ok, men tingene bliver indsat i et skema, som dækker en uge. Man kan så klikke frem og tilbage i ugerne, og det er her problemet opstår. Hvis man f.eks. klikker 5 uger frem, så er det jo den dato, som skal gælde, og ikke Date(), som jo stadig er den aktuelle dato. Jeg har en funktion, som "laver" den rigtige dato, når man klikker frem eller tilbage.
FormatDateTime(UgeTilDato(aar, uge, 2), vbShortDate)
men det kan jeg jo ikke bare indsætte i SQL'en.
Er der nogen som ved hvordan den skal klares?
<%Session.LCID = &H0407%>
<%
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
%>
<%
if Request("mode") = "change" then
Response.Redirect("fysik.asp?uge=" & Request("uge") & "&aar=2003")
end if
%>
<html>
<head>
<title>Fysik</title>
<LINK REL="StyleSheet"
HREF="../style.css"
TYPE="text/css">
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Tom Khoury (twaks@yahoo.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
function placeFocus() {
if (document.forms.length > 0) {
var field = document.forms[0];
for (i = 0; i < field.length; i++) {
if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s")) {
document.forms[0].elements[i].focus();
break;
}
}
}
}
// End -->
</script>
</head>
<body background="../images/background7.gif" OnLoad="placeFocus()">
<table border="1" width="100%" cellspacing="0" cellpadding="0" bordercolor="#0000FF" bordercolorlight="#0000FF" bordercolordark="#FFFFFF">
<tr>
<td width="128%" colspan="6" bgcolor="#669999">
<table border="0" width="100%">
<tr>
<td width="25%" valign="bottom"><b><font face="Verdana" color="#FFFFFF" size="4">Fysik</font></b></td>
<%
Function UgeTilDato(aar,uge,dag)
januar1 = DateSerial(aar, 1, 1)
ugedagjan1 = Weekday(januar1, vbMonday)
if ugedagjan1 <= 4 then
' 1. januar er i uge 1
mandaguge1 = DateAdd("d", -ugedagjan1+1, januar1)
else
' 1. januar er i sidste uge foregående år
mandaguge1 = DateAdd("d", 7-ugedagjan1+1, januar1)
end if
mandagugex = DateAdd("ww", uge-1, mandaguge1)
xdagugex = DateAdd("d", dag-1, mandagugex)
UgeTilDato = xdagugex
End Function
If request.querystring("uge") <> "" Then
uge = request.querystring("uge")
Else
uge = DatePart("ww",date())
End if
If request.querystring("aar") <> "" Then
aar = request.querystring("aar")
Else
aar = Year(Date)
End If
fuge = uge - 1
faar = aar
If fuge < 1 then
fuge = 52
faar = faar - 1
End If
Response.Write"<td width=20% align=left valign=bottom><font face=verdana size=3><A class='speciel' HREF='fysik.asp?uge=" & fuge & "&aar=" & faar & "'><--Forrige uge </A></font></td>"
%>
<td width="20%" align="left"><font color="#FFFFFF"><b><font face="Verdana" size="4">Uge</font><font face="Verdana" size="3"> </font></b>
</font>
<%
If Request.Querystring("uge") <> "" Then
uge = Request.Querystring("uge")
Else
uge = DatePart("ww",date())
End If
Response.Write "<font color=white face=verdana size=5>"
Response.Write uge
%>
</td>
<%
If request.querystring("uge") <> "" Then
uge = request.querystring("uge")
Else
uge = DatePart("ww",date())
End if
If request.querystring("aar") <> "" Then
aar = request.querystring("aar")
Else
aar = Year(Date)
End If
nuge = uge + 1
naar = aar
If nuge > 52 then
nuge = 1
naar = naar + 1
End If
Response.Write"<td width=35% align=left valign=bottom><font face=verdana size=3><A class='speciel' HREF='fysik.asp?uge=" & nuge & "&aar=" & naar & "'>Næste uge--></A></font></td>"
%>
</tr>
</table>
<tr>
<td width="8%" bgcolor="#669999"> </td>
<td width="18%" bgcolor="#669999">
<p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Mandag</b><br>
<% Response.Write FormatDateTime(UgeTilDato(aar, uge, 1), vbShortDate) %></font></td>
<td width="18%" bgcolor="#669999">
<p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Tirsdag</b><br>
<% Response.Write FormatDateTime(UgeTilDato(aar, uge, 2), vbShortDate) %></font></td>
<td width="19%" bgcolor="#669999">
<p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Onsdag</b><br>
<% Response.Write FormatDateTime(UgeTilDato(aar, uge, 3), vbShortDate) %></font></td>
<td width="19%" bgcolor="#669999">
<p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Torsdag</b><br>
<% Response.Write FormatDateTime(UgeTilDato(aar, uge, 4), vbShortDate) %></font></td>
<td width="19%" bgcolor="#669999">
<p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Fredag</b><br>
<% Response.Write FormatDateTime(UgeTilDato(aar, uge, 5), vbShortDate) %></font></td>
</tr>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("/reservation5/data.mdb")
Conn.Open DSN
lektion = Request.Querystring("lektion")
dag = Request.Querystring("dag")
reservation = Request.Querystring("reservation")
dim SQLdag(7)
SQLdag(1) = "Mandag"
SQLdag(2) = "Tirsdag"
SQLdag(3) = "Onsdag"
SQLdag(4) = "Torsdag"
SQLdag(5) = "Fredag"
SQLdag(6) = "Lørdag"
SQLdag(7) = "Søndag"
dim linkdag(7)
linkdag(1) = "mandag"
linkdag(2) = "tirsdag"
linkdag(3) = "onsdag"
linkdag(4) = "torsdag"
linkdag(5) = "fredag"
linkdag(6) = "lørdag"
linkdag(7) = "søndag"
for lektion = 1 to 7
Response.Write "<tr>"
Response.Write "<td width=8% height=40 align=center bgcolor=#669999><font face=Verdana size=2 color=#FFFFFF>" & lektion & ". time</font></td>"
for dag = 1 to 5
strSQL = "SELECT dag,tekst,lektion FROM mintabelWHERE reservation='fysik' AND dag='" & SQLdag(dag) & "' AND lektion='" & lektion & "' AND Date()BETWEEN minDato and maxDato "
set rs = Conn.Execute(strSQL)
if not (rs.EOF or rs.BOF) then
Response.write"<td border=1 bordercolor=#0000FF bordercolordark=#FFFFFF bordercolorlight=#0000F width=18% height=40 bgcolor=red><font face=Verdana size=1 color=#FFFFFF><p align=center>"&rs("tekst")&"</font></td>"
Else
'generer data og HTML kode for (dag,lektion)
strSQL = "SELECT initialer,klasse FROM ebberup_reserver WHERE reservation='fysik' AND dag='" & SQLdag(dag) & "' AND lektion='" & lektion & "' AND uge='" & uge & "' AND aar='" & aar & "'"
set rs = Conn.Execute(strSQL)
if rs.EOF or rs.BOF then
Response.Write"<td width=18% height=40 bgcolor=#FFFFFF><font color=#FFFFFF><A HREF='reserver_form.asp?aar=" & aar & "&uge=" & uge & "&dag=" & linkdag(dag) & "&lektion=" & lektion & "&reservation=fysik'><img border=0 src='../images/greenball.gif' alt='Ledig'></font></td>"
Else
Response.Write"<td width=18% height=40 bgcolor=#FFFFFF><b><font color=#FFFFFF face='verdana' size='2'><img src='../images/redball.gif' alt='Optaget'><img src='../images/blank2.gif'><A HREF='vis_reservation.asp?reservation=fysik&lektion=" & lektion & "&dag=" & linkdag(dag) & "&uge=" & uge &"'>"&rs("initialer")&"</A></font></b></td>"
rs.MoveNext
End if
End if
next
Response.Write "</tr>"
next
rs.close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>
</table>
<form method="POST" action="fysik.asp" name="form1">
<table border="0" width="100%">
<tr>
<td width="33%">
<p align="center"><font face="verdana" size="2"><a class="speciel2" HREF="fysik2.asp">Skema
for hele dagen</a></font></td>
<td width="33%">
<p align="center"><font face="Verdana" size="2">Gå til uge</font> <input type="text" name="uge" size="3">
<input type="submit" value="Send" name="B1"></td>
<td width="34%">
<p align="center"><font face=verdana size=2><A class='speciel2' HREF='../index.htm'>Tilbage
til forsiden</A></font></td>
</tr>
</table>
<input type="hidden" name="mode" value="change">
</form>
<p align="center"><font face="verdana" size="2"><a class="speciel2" HREF="fysik2.asp"><br>
</a></font></p>
<p align="center"> </p>
</html>
