En sub exekverar bara koden och för ingenting tillbaks till din sida... det du vill använda är en 'function'... den funkerar likadant, bara det att du måste omfamna argumenten med paranteser:
VisaBarnMeddelanden(0,0)
5 svar · 219 visningar · startad av Ricki
Tjena,
Jag har följande kod till ett forum:
<%
'--------------------------------------------------
' Öppna databasen
'--------------------------------------------------
password = "xxx"
databas = "xxx.mdb"
DBPath = Server.Mappath(mid(Request.ServerVariables("PATH_INFO"),1,instrrev(Request.ServerVariables("PATH_INFO"), "\")) & databas)
Set MinCon=Server.CreateObject("ADODB.Connection")
MinCon.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & DBPath & ";uid=;pwd=" & password & ";"
%>
<script LANGUAGE="vbscript" RUNAT="Server">
Sub VisaBarnMeddelanden(Forelder,Niva)
Dim databas
Set databas = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * From FORUM WHERE Forelder=" & Forelder & " ORDER BY Datum DESC"
databas.Open SQL, MinCon, 1, 2
Do While Not databas.EOF
Response.Write "<tr>"
Response.Write "<td>"
For slinga = 1 to Niva
Response.Write " "
Next
Response.Write "<a href='forum.asp?id=lasa&nr=" & databas("MeddelandeID") & "'>" & databas("Amne") & "</a>"
Response.Write "</td>"
Response.Write "<td nowrap>" & databas("Postare") & "</td>"
Response.Write "<td nowrap>" & FormatDateTime(databas("Datum"),2) & "</td>"
Response.Write "</tr>"
VisaBarnMeddelanden databas("MeddelandeID"),Niva+1
databas.MoveNext
Loop
End Sub
</script>
<table border="0" width="99%" cellpadding="0" cellspacing="0">
<tr>
<td width="60%"><strong>Meddelanden</strong></td>
<td width="20%"><strong>Postat av</strong></td>
<td width="20%"><strong>Datum</strong></td>
</tr>
<%
'--------------------------------------------------
' Anropa subben
'--------------------------------------------------
VisaBarnMeddelanden 0,0
%>
</table>
Jag skulle vilja dela upp sidan så att man bara ser 10 huvudmeddelande på varje sida.
Jag har försökt med scriptet "Dela upp recordset på flera sidor" i ASP FAQ, men har inte fått det att funka...
Kan man inte göra det när det ligger i en sub???
Tack på förhand...
En sub exekverar bara koden och för ingenting tillbaks till din sida... det du vill använda är en 'function'... den funkerar likadant, bara det att du måste omfamna argumenten med paranteser:
VisaBarnMeddelanden(0,0)
Fungerar det att dela upp recordsettet på flera sidor då?
Följande kod:
<%
'--------------------------------------------------
' Öppna databasen
'--------------------------------------------------
password = "xxx"
databas = "xxx"
DBPath = Server.Mappath(mid(Request.ServerVariables("PATH_INFO"),1,instrrev(Request.ServerVariables("PATH_INFO"), "\")) & databas)
Set MinCon=Server.CreateObject("ADODB.Connection")
MinCon.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & DBPath & ";uid=;pwd=" & password & ";"
Function VisaBarnMeddelanden(Forelder,Niva)
Dim databas
Set databas = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * From FORUM WHERE Forelder=" & Forelder & " ORDER BY Datum DESC"
databas.Open SQL, MinCon, 1, 2
Do While Not databas.EOF
Response.Write "<tr>"
Response.Write "<td>"
For slinga = 1 to Niva
Response.Write " "
Next
Response.Write "<a href='forum.asp?id=lasa&nr=" & databas("MeddelandeID") & "'>" & databas("Amne") & "</a>"
Response.Write "</td>"
Response.Write "<td nowrap>" & databas("Postare") & "</td>"
Response.Write "<td nowrap>" & FormatDateTime(databas("Datum"),2) & "</td>"
Response.Write "</tr>"
VisaBarnMeddelanden(databas("MeddelandeID"),Niva+1)
databas.MoveNext
Loop
End Function
%>
<table border="0" width="99%" cellpadding="0" cellspacing="0">
<tr>
<td width="60%"><strong>Meddelanden</strong></td>
<td width="20%"><strong>Postat av</strong></td>
<td width="20%"><strong>Datum</strong></td>
</tr>
<%
'--------------------------------------------------
' Anropa subben
'--------------------------------------------------
VisaBarnMeddelanden(0,0)
%>
</table>
Generera följande felmeddelande:
Kompileringsfel i Microsoft VBScript fel '800a0414'
Det går inte att använda parenteser när en Sub anropas.
/Rickard/ricki2/forum.asp, rad 103
VisaBarnMeddelanden(databas("MeddelandeID"),Niva+1)
---------------------------------------------------^
Vad är fel???
Självklart kan du använda tekniken från FAQ:n. Visa hur du försökt, så får vi se vad som är fel.
Annars är verkar det rätt tänkt, även om det är lite konstigt med <SCRIPT> mitt i allt.
Det ska vara en sub, inte en function.
Emmission,
Jag ska knåpa ihop ett script så kan du få titta på det...