webForumDet fria alternativet

Forum

ASP

6 svar · 368 visningar · startad av ade

Medlem sedan juli 20041 081 inlägg
Frågan#1

Hejsan håller på med ett forum.

forumets url är http://www.bloody-mary.dk/forum2.0/forum.asp

Testa forumet. Det går ej att posta inlägg, Jag har tagit koderna ur denna kurs http://www.aspsidan.nu/kursRead.asp?kid=7

detta felmedelande kommer upp

Object required: 'objRs'

/forum2.0/forum.asp, line 10

rad 10: objRs.Open Addera, Connect, 3, 3

Säg till mo ni vill ha fler koder..

Medlem sedan juni 200032 967 inlägg
#2

Visa alltid kod som skapar felet. I det här fallet antar jag att felet beror på att du inte skapat något objekt som heter objRS.

Medlem sedan juli 20041 081 inlägg
#3

jag skrev den här

rad 10: objRs.Open Addera, Connect, 3, 3
Medlem sedan aug. 20002 272 inlägg
#4

ja, men ge oss lite mer kod så vi får lite översikt...

Medlem sedan juli 20041 081 inlägg
#5
<%
' skapa en databas kopling till våran databas
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("forum.mdb") 

' ställer frågan om vi ska spara en tråd ?
If Request.QueryString("action") = "spara" then

Addera = "SELECT * FROM forum"
Set RS = Server.CreateObject("ADODB.Recordset")
objRs.Open Addera, Connect, 3, 3

' skapar en ny rad i tabellen
rs.addnew
rs("namn") = request.form("namn")
rs("email") = request.form("email")
rs("amne") = request.form("amne")
rs("titel") = request.form("titel")
rs("med") = request.form("med")
rs("org") = "ja"
rs("datum") = now
rs("senaste") = now
rs.update

'stänger allt efter oss
rs.close
connect.close
set rs = nothing
set connect = nothing

' länkar tillbaka till forum.asp
response.Redirect "forum.asp"
'avslutar frågan
end if

'öppnar ämnes tabellen
Set rs2 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM amne order by amne desc"
rs2.Open Addera, Connect, 3, 3

'börjar loopa igenom alla ämnena
do until rs2.eof

' skriver ut namnet på ämnet
Response.write rs2("amne")

'öppnar tabellen med inläggen där ämnet stämmer överens men bara dom 5 första
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT top 5 * FROM forum where amne='"&rs2("amne")&"' order by id desc"
rs.Open Addera, Connect, 3, 3

' om inget i tabellen hittades som passade ihop med ämnet så visar vi följande text
if rs.eof then 
%>
<br>Inga trådar i detta ämne än :( 

<% 
' annats så börjar vi loopa igenom trådarna
else 
do until rs.eof %>
<br>
<a href="forum_las.asp?id=<%=rs("id")%>"><%=rs("titel")%></a> <%=rs("senaste")%> 
Svar: 
<%

' nu öppnar vi tabellen igen men nu kollar vi efter svar på tråden
' och räknar hur många dom är
Set rs3 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM forum where svarpa='"&rs("id")&"'"
rs3.Open Addera, Connect, 3, 3

' med följande kod räknar vi svaren
antal = rs3.recordcount

' sen så stänger vi den tabellen
rs3.close
set rs3 = nothing

'och skriver ut antalet svar
response.write antal 

'sen går vi till nästa tråd
rs.movenext
loop

'och så avslutar vi frågan om några trådar fanns 
end if

' och stänger den tabellen
rs.close
set rs = nothing

' lägger in två nya raden så det inte blir så grötigt :)
response.write "<br><br>"

' loopen börjar om genom ämnena.
rs2.movenext
loop

' stänger tabellen för ämnena
rs2.close
set rs2 = nothing

' nu gör vi ett formulär
%>
<br>
<br>
<form name="form" method="post" action="forum.asp?action=spara">

Ditt namn:<br>
<input name="namn" type="text" size="50">
<br>
Min email:<br>
<input name="email" type="text" size="50">
<br>
Kategori:<br>
<select name="amne">
<%

' loopar igenom alla ämnena
Set rs2 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM amne order by amne desc"
rs2.Open Addera, Connect, 3, 3
do until rs2.eof
%>
<option value="<%=rs2("amne")%>"><%=rs2("amne")%></option>
<%
rs2.movenext
loop

%>
</select>
<br>
Rubrik:<br>
<input name="titel" type="text" size="50">
<br>
Inl&auml;gg:<br>
<textarea name="med" cols="50" rows="10"></textarea>
<br>
<input type="submit" name="Submit" value="Skicka">
</form>

<%

' stänger databasen för att loopa igenom ämnena
rs2.close
set rs2 = nothing
connect.close
set connect = nothing
%>

Så ser hela ut och jag fick detta felmedelande:

Microsoft VBScript runtime error '800a01a8'

Object required: 'objRs'

/forum2.0/forum.asp, line 11

rad 11: rs.Open Addera, Connect, 3, 3

Medlem sedan nov. 20017 144 inlägg
#6

Jämför dessa:

Set RS = Server.CreateObject("ADODB.Recordset")
objRs.Open Addera, Connect, 3, 3
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open Addera, Connect, 3, 3
Medlem sedan juli 20041 081 inlägg
#7

Så här ser hela koden ut nu:

<%
' skapa en databas kopling till våran databas
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("forum.mdb") 

' ställer frågan om vi ska spara en tråd ?
If Request.QueryString("action") = "spara" then

Addera = "SELECT * FROM forum"
Set RS = Server.CreateObject("ADODB.Recordset")
Rs.Open Addera, Connect, 3, 3

' skapar en ny rad i tabellen
rs.addnew
rs("namn") = request.form("namn")
rs("email") = request.form("email")
rs("amne") = request.form("amne")
rs("titel") = request.form("titel")
rs("med") = request.form("med")
rs("org") = "ja"
rs("datum") = now
rs("senaste") = now
rs.update

'stänger allt efter oss
rs.close
connect.close
set rs = nothing
set connect = nothing

' länkar tillbaka till forum.asp
response.Redirect "forum.asp"
'avslutar frågan
end if

'öppnar ämnes tabellen
Set rs2 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM amne order by amne desc"
rs2.Open Addera, Connect, 3, 3

'börjar loopa igenom alla ämnena
do until rs2.eof

' skriver ut namnet på ämnet
Response.write rs2("amne")

'öppnar tabellen med inläggen där ämnet stämmer överens men bara dom 5 första
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT top 5 * FROM forum where amne='"&rs2("amne")&"' order by id desc"
rs.Open Addera, Connect, 3, 3

' om inget i tabellen hittades som passade ihop med ämnet så visar vi följande text
if rs.eof then 
%>
<br>Inga trådar i detta ämne än :( 

<% 
' annats så börjar vi loopa igenom trådarna
else 
do until rs.eof %>
<br>
<a href="forum_las.asp?id=<%=rs("id")%>"><%=rs("titel")%></a> <%=rs("senaste")%> 
Svar: 
<%

' nu öppnar vi tabellen igen men nu kollar vi efter svar på tråden
' och räknar hur många dom är
Set rs3 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM forum where svarpa='"&rs("id")&"'"
rs3.Open Addera, Connect, 3, 3

' med följande kod räknar vi svaren
antal = rs3.recordcount

' sen så stänger vi den tabellen
rs3.close
set rs3 = nothing

'och skriver ut antalet svar
response.write antal 

'sen går vi till nästa tråd
rs.movenext
loop

'och så avslutar vi frågan om några trådar fanns 
end if

' och stänger den tabellen
rs.close
set rs = nothing

' lägger in två nya raden så det inte blir så grötigt :)
response.write "<br><br>"

' loopen börjar om genom ämnena.
rs2.movenext
loop

' stänger tabellen för ämnena
rs2.close
set rs2 = nothing

' nu gör vi ett formulär
%>
<br>
<br>
<;form name=";form" method="post" action="forum.asp?action=spara">

Ditt namn:<br>
<input name="namn" type="text" size="50">
<br>
Min email:<br>
<input name="email" type="text" size="50">
<br>
Kategori:<br>
<select name="amne">
<%

' loopar igenom alla ämnena
Set rs2 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM amne order by amne desc"
rs2.Open Addera, Connect, 3, 3
do until rs2.eof
%>
<option value="<%=rs2("amne")%>"><%=rs2("amne")%></option>
<%
rs2.movenext
loop

%>
</select>
<br>
Rubrik:<br>
<input name="titel" type="text" size="50">
<br>
Inl&auml;gg:<br>
<textarea name="med" cols="50" rows="10"></textarea>
<br>
<input type="submit" name="Submit" value="Skicka">
</form>

<%

' stänger databasen för att loopa igenom ämnena
rs2.close
set rs2 = nothing
connect.close
set connect = nothing
%>

Jag får detta felmedalnde:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/forum2.0/forum.asp, line 18

rad 18:


rs("titel") = request.form("titel")

Jag tordde det var nått med databasen att den sakna kolummen titel men då kom det bara att de vart felmedlenade på nästa osv.

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)