Brug af flere recordsæt
Dette script består af en while-løkke, som kører indtil EOF på et Recordsæt.Inde i løkken laves et opslag på en anden DB for at finde en tekst til en given kode.
Det fungerer fint når jeg bruger samme recordsæt. Når jeg ændrer recordsættet i funktionen FindSvarText til noget andet end hovedløkkens - får jeg EOF ("Knas med værditabel")
Umiddelbart kunne jeg godt bruge samme recordsæt - så ville problemet være løst, men det betyder at der er EOF, når jeg har behandlet første evaluering.
Hva' hulen er forkert???
-----------------------------------
<%Option Explicit %>
<!--#include File="include/adovbs.inc"-->
<!--#include File="include/Standard.inc"-->
<!--#include file="include/DatabaseConnect.asp"-->
<!--#include file="include/ValueKoderConnect.asp"-->
<!-- Opsætning af standardparametre -->
<% Response.Expires = 0 %>
<% Response.Buffer= True %>
<html>
<head><!-- Minus AutoDato -->
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<link rel="stylesheet" type="text/css" href="Styles/styles.css" />
<title>Vis Evalueringer</title>
</head>
<body>
<p>Dato: <% =Date %> </p>
<h2>Vis Evalueringer </h2>
<table align="center">
<p>
<!-- Vis de indtastede data fra formen -->
<%Response.Write "<tr><td>Klasse:</td><td> " %>
<%Response.Write Session("Klasse") & "</td></tr>" %>
<%Response.Write "<tr><td>Fag: </td><td>" %>
<%Response.Write Session("Fagbetegnelse") & "</td></tr>" %>
</p>
</table>
<!-- Start på hovedrutinen -->
<!-- Først indlæses alle spørgsmålene i en tabel -->
<%
Dim arrSpgm(20), arrBesvar(30), arrSvarTxt(65)
Dim ix, spgIx, strSQL, objRS, objRS1
Dim txtSvar
strSQL = "SELECT * FROM Sporgsmaal "
Set objRS1 = objConnSpoergsmaal.Execute(strSQL)
If (objRS1.EOF = TRUE) Then
Session("FejlTxt") = "<h2>Spørsmål-DB findes ikke</h2>"
Response.Redirect("Visfejl1.asp")
End If
ix = 0
Do While Not (objRS1.EOF)
arrSpgm(ix) = objRS1("Tekst")
ix = ix + 1
objRS1.MoveNext
Loop
objRS1.Close
%>
<!-- Herunder kører et loop med evalueringer -->
<%
strSQL = "SELECT * FROM Evaluering WHERE Klasse = '"
strSQL = strSQL & Session("Klasse") & "' "
strSQL = strSQL & "AND Fagbetegnelse = '"
strSQL = strSQL & Session("Fagbetegnelse") & "' "
Set objRS1 = objConn.Execute(strSQL)
If (objRS1.EOF = TRUE) Then
Session("FejlTxt") = "<h2>Ingen evalueringer</h2>"
Response.Redirect("Visfejl1.asp")
End If
Do While Not (objRS1.EOF)
LaegEvalTabel()
Response.Write("<Table><tr><td>")
ix = 3
Response.Write("Navn: </td><td>")
Response.Write(arrBesvar(ix))
ix = 6
Response.Write("</td></tr>")
For SpgIx = 0 to 12
Response.Write("<tr><td>")
Response.Write(arrSpgm(SpgIx))
Response.Write("</td><td>")
Response.Write(FindSvarText(arrBesvar(ix)))
Response.Write("</td></tr>")
ix = ix + 1
Next
Response.Write("</Table>")
objRS1.MoveNext
Loop
%>
<!-- Vi lukker og slukker pænt efter os -->
<%
'If objRS.State = adStateOpen Then
' objRS.Close
'End If
Set objRS = Nothing
If objRS1.State = adStateOpen Then
objRS1.Close
End If
Set objRS1 = Nothing
objConn.Close
Set objConn = Nothing
objConnValueKoder.Close
Set objConnValueKoder = Nothing
%>
<!-- Function til at finde Teksten til en given svarværdi -->
<%
Function FindSvarText(Vaerdi)
strSQL = "SELECT Tekst FROM VaerdiTabel WHERE "
strSQL = strSQL & "Vaerdi = '"
strSQL = strSQL & Vaerdi & "'"
Set objRS = objConnValueKoder.Execute(strSQL)
If (objRS.EOF) Then
Session("FejlTxt") = "<h2>Knas med Værditabel</h2>"
Response.Redirect("Visfejl1.asp")
End If
FindSvarText = objRS("Tekst")
End Function
%>
<!-- Subrutine til at lægge en evaluering i tabel -->
<%
Sub LaegEvalTabel()
For ix = 0 to objRS1.Fields.Count - 1
arrBesvar(ix) = objRS1.Fields(ix).Value
Next
End Sub
%>
<p align="center"><a href="Besvarmenu.asp"><img src="Figurer/Tilbage.jpg" border="0"
width="107" height="25" alt="Tilbage.jpg (2150 bytes)"></a></p>
<p align="center"><a href="VisBesvarelser3.asp"><img src="Figurer/Videre.jpg" border="0"
</body>
</html>