Jag har aldrig använt det förrut men tänkte att det är på tiden att börja "kapsla in" koden lite...
Jag har gjort början på ett enkelt omröstningsscript (fritt fram att ta om ni vill) och vill nu göra en subrutin av det.
Hur gör jag? Hur kallar jag den? Var hamnar det genererade reslutatet? Där jag kallat den eller där den ligger?
<%
' Plockar ut frågan till omröstningen
strSQL = "SELECT TOP 1 * From Poll_questions ORDER BY id DESC"
Set RecSet = Connect.Execute(strSQL)
' Om det finns frågor i databasen
IF NOT RecSet.EOF THEN
' Tanka över posterna i RecordSetet till en array
arrRecords = RecSet.GetRows
' Stänger RecordSetet eftersom det inte behövs (infon finns i arrayen).
RecSet.Close
Set RecSet = Nothing
'IF ISArray(arrRecords) THEN <-- kan man dubbelkolla med men behövs ej...
' Plockar ut svaren som hör till frågan (genom arrayen)
strSQL = "SELECT * From Poll_answers WHERE attachment = " & arrRecords(0,0) & " ORDER BY name"
Set RecSet = Connect.Execute(strSQL)
If NOT RecSet.EOF Then
arrRecords2 = RecSet.GetRows
RecSet.Close
Set RecSet = Nothing
' Skriver ut frågan.
Response.Write arrRecords(1,0) & "<br>"
' Summerar summan av hur många gggr. folk röstat på de olika svaren.
summan = arrRecords2(2,0) + arrRecords2(2,1)
' Loopar igenom arrayen med info, 2 i slutet står för att den är tvådimensionell.
For I=0 to UBound(arrRecords2,2)
%>
<a href="rosta.asp?question=<%=ID%>&answer=<%=arrRecords2(0,I)%>"><%=arrRecords2(1,I)%></a>
<br />
<img src="grafik/design_ritat/stapel1.gif" border="0" width="<%=Round(300*(arrRecords2(2,I) / summan), 0)%>" height="2" />
<br />
<%=Round(100*(arrRecords2(2,I) / summan), 0)%>%
<br />
<%
Next
Response.Write "Antal svar:" & summan
Else
Response.Write "Fel uppstod"
End IF
Else
Response.Write "Finns inga poster i databasen."
RecSet.Close
Set RecSet = Nothing
End If
%>