---
title: "Fel i forum kod!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/93179-fel-i-forum-kod"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "magnusfernstrom"
published: "2003-12-21T13:56:46.000Z"
updated: "2003-12-24T06:02:55.000Z"
replies: 20
views: 579
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/93179-fel-i-forum-kod"
---

# Fel i forum kod!

_Sida 1 av 2._

## #1 — magnusfernstrom, 2003-12-21T13:56Z

Hejsan!

Jag har laddat ner och testat ett script från ASPSidann scriptarkiv.
Men jag får det inte att fungera som det ska.

Det är ett forum, jag kan posta och se länkar till trådarna.
Men jag kan inte läsa trådarna.

Koden får sidan där tråden skall synas ser ut så här:

```
<%
Option Explicit
Dim objConn 'as object
Dim strConn 'as string
Dim strSQL 'as string
Dim rstThread 'as recordset
Dim rstSubThreads 'as recordset
Dim lngThreadID 'as long

'Kontrollera om det är ett giltigt anrop till sidan.
if not IsNumeric(Request.QueryString("threadID")) or Request.QueryString("threadID") = "" then
 'Ogiltigt anrop. Skicka tillbaka till startsidan.
 Response.Redirect("default.asp")
else
 'Giltigt anrop.
 lngThreadID = Request.QueryString("threadID")
end if

'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn

'Skapa SQL-strängen för att hämta den aktuella tråden.
strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadID=" & lngThreadID

'Skapa och öppna ett recordset
Set rstThread = objConn.Execute(strSQL)
%>
<html>
 <body>
  <table border="0">
   <tr>
    <td>
     <b>Rubrik</b>
    </td>
    <td>
     <b>Datum</b>
    </td>
    <td>
     <b>Vem?</b>
    </td>
   </tr>
   <tr>
    <td colspan="2">
     <b><%=rstForum(2)%></b><i><%=rstThread(1)%></i>
    </td>
   </tr>
   <tr>
    <td>
     <%=Replace(rstThread(4), vbCrLf, "<br>")%>
    </td>
   </tr>
   <tr>
    <td>
     Inlägget gjord av: <a href="<%=rstThread(5)%>"><%=rstThread(3)%></a></b>
    </td>
   </tr>
   <tr>
    <td> </td>
   </tr>
   <tr>
    <td><a href="form.asp?replyTo=<%=rstThread(0)%>">Svara på detta inlägg</a></td>
   </tr>
 <%
 'Skapa en ny sql-sträng för att få ut alla svar till tråden.
 strSQL = strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadParent=" & rstThread(0)

'Öppna ett nytt recordset
 Set rstSubThreads = objConn.Execute(strSQL)

 if (rstSubThreads.EOF or rstSubThreads.BOF) then
  %>
   <tr>
    <td>Det finns inga svar till det här inlägget.</td>
   </tr>
   <%
 else
  do while not rstSubThreads.EOF
   %>
   <tr>
    <td><hr noshade size="1"> </td>
   </tr>
   <tr>
    <td colspan="2">
     <b><%=rstSubThreads(2)%></b>&nbsp;&nbsp;&nbsp;& nbsp;<i><%=rstSubThreads(1)%></i>
    </td>
   </tr>
   <tr>
    <td>
     <%=Replace(rstSubThreads(4), vbCrLf, "<br>")%>
    </td>
   </tr>
   <tr>
    <td>
     Inlägget gjord av: <a href="<%=rstSubThreads(5)%>"><%=rstSubThreads(3)%></a></b>
    </td>
   </tr>
   <tr>
    <td>&nbsp;</td>
   </tr>
   <%
   rstSubThreads.MoveNext
  loop
  %>
  </table>
 </body>
</html>
<%
End If
'Stäng databasen
objConn.Close
SetobjConn = nothing
%>
```

Och det här felmeddelandet får jag:

```
Microsoft VBScript runtime error '800a01f4' 

Variable is undefined: 'rstForum' 

/themad/db/readThread.asp, line 47
```

Hela koden finns här:

<http://www.aspsidan.nu/kursRead.asp?kid=118>

Jag har ingen aning vad som är fel.
Även om felmeddelandet är relativt enkelt att förstå.

Tacksam för svar.

Mvh Magnus Fernström

Permalänk: https://www.webforum.nu/p/93179

## #2 — @nders, 2003-12-21T13:58Z

Använder man Option Explicit måste man "dimma" alla variabler man ska använda. Lägg alltså till **Dim rstForum** i koden där andra variabler namngivs.

Permalänk: https://www.webforum.nu/p/1235521

## #3 — magnusfernstrom, 2003-12-21T14:14Z

Jag har prövat det...Kanske skulle han nämnt det.

När jag "dimmar" den dyker detta felmeddelande upp:

```
Microsoft VBScript runtime error '800a000d' 

Type mismatch 

/themad/db/readThread.asp, line 48
```

Permalänk: https://www.webforum.nu/p/1235527

## #4 — Sebbe, 2003-12-21T14:25Z

Vilken rad är rad 48?

Permalänk: https://www.webforum.nu/p/1235536

## #5 — magnusfernstrom, 2003-12-21T14:30Z

```
rad 48:

<b><%=rstForum(2)%></b><i><%=rstThread(1)%></i>
```

Permalänk: https://www.webforum.nu/p/1235539

## #6 — Sebbe, 2003-12-21T14:32Z

Jag antar att det är samma recordset du vill använda? 

```
<b><%=rstThread(2)%></b><i><%=rstThread(1)%></i>
```

Permalänk: https://www.webforum.nu/p/1235542

## #7 — magnusfernstrom, 2003-12-21T14:37Z

Hur menar du?

Men när jag kör med din kod blir resultatet så här:

```
Microsoft JET Database Engine error '80040e14' 
Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'. 

/themad/db/readThread.asp, line 72
Rubrik  Datum  Vem?  
dasdsadd  
adadasddddad  
Inlägget gjord av: dsadasdasdas  
 
Svara på detta inlägg
```

Permalänk: https://www.webforum.nu/p/1235544

## #8 — Sebbe, 2003-12-21T14:39Z

Byt ut

```
 'Skapa en ny sql-sträng för att få ut alla svar till tråden.
 strSQL = strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadParent=" & rstThread(0)

'Öppna ett nytt recordset
 Set rstSubThreads = objConn.Execute(strSQL)
```

mot

```
 'Skapa en ny sql-sträng för att få ut alla svar till tråden.
 strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadParent=" & rstThread(0)

'Öppna ett nytt recordset
 Set rstSubThreads = objConn.Execute(strSQL)
```

Permalänk: https://www.webforum.nu/p/1235545

## #9 — magnusfernstrom, 2003-12-21T14:41Z

Aha ok tackar! skall pröva nu.

Permalänk: https://www.webforum.nu/p/1235547

## #10 — magnusfernstrom, 2003-12-21T14:43Z

Nu blir resultatet följande:

```
Rubrik  Datum  Vem?  
dasdsadd  
adadasddddad  
Inlägget gjord av: dsadasdasdas  
 
Svara på detta inlägg 
Det finns inga svar till det här inlägget. 
Microsoft VBScript runtime error '800a01f4' 
Variable is undefined: 'SetobjConn' 

/themad/db/readThread.asp, line 115
```

Permalänk: https://www.webforum.nu/p/1235548

## #11 — LeonL, 2003-12-21T14:46Z

Lägg till

```
Dim SetobjConn
```

Lämnar över till Sebbe igen :p

Permalänk: https://www.webforum.nu/p/1235551

## #12 — Sebbe, 2003-12-21T14:49Z

> **LeonL skrev:**
>
> Lägg till
>
> ```
> Dim SetobjConn
> ```
>
> Lämnar över till Sebbe igen :p

Ehm... Eller så skriver man bara Set objConn som två ord. ;)

Permalänk: https://www.webforum.nu/p/1235554

## #13 — LeonL, 2003-12-21T14:50Z

. :e :e :e

Permalänk: https://www.webforum.nu/p/1235556

## #14 — magnusfernstrom, 2003-12-21T15:02Z

Ähh det förbaskade forumet funkar ju ändå inte!

Permalänk: https://www.webforum.nu/p/1235562

## #15 — LeonL, 2003-12-21T15:04Z

Ge aldrig upp ;)

Så som det ser ut nu så är det ju bara missar och stavfel som har orsakat felen...

Permalänk: https://www.webforum.nu/p/1235565

## #16 — magnusfernstrom, 2003-12-21T22:13Z

Jaja tack för uppmuntran :)
Men nu har jag påörjat mitt forum projekt på nytt.

Allt är bra förutom denna kod:

```
<%
Dim lngThreadID
Dim rstThread

if not IsNumeric(Request.QueryString("threadID")) or Request.QueryString("threadID") = "" then
strThread = Request.Querystring("threadID")
Response.Redirect("default.asp")
else

lngThreadID = Request.QueryString("threadID")
end if

Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("forum.mdb")
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail, threadParent FROM tblForum WHERE threadID=" & lngThreadID
Set rs = db.Execute(SQL)
%>
<br>
<a href="form.asp?replyTo=<%=rs("threadID")%>">Svara på detta inlägg</a>
<br>
<br>
<html>
<%=rs("threadHeadline")%>
<br>
<%=rs("threadDateTime")%>
<br>
<%=Replace(threadText, vbCrLf, "<br>")%> 
<br>
<a href="<%=rs("threadPosterEmail")%>"><%=rs("threadPoster")%></a> 
<br>
<br>
<br>
<%
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail, threadParent FROM tblForum WHERE threadParent=" & threadParent(0)
Set rs = db.Execute(SQL)

if (rs.EOF or rs.BOF) then
%>
Inga svar!
<%
 else
  do while not rs.EOF
   %>
<%=rs("threadHeadline")%>
<br>
<%=rs("threadDateTime")%>
<br>
<%=Replace(threadText, vbCrLf, "<br>")%> 
<br>
<a href="<%=rs("threadPosterEmail")%>"><%=rs("threadPoster")%></a>
<br>
<br>
<%
rs.MoveNext
loop
%>
<%
db.Close
Set db = nothing
end if
%>
```

Detta är alltså sidan som inläggen i varje tråd skall listas.
Men den vill inte lista svaren.
Felmeddelandet jag får är:

```
Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'threadParent' 

/themad/db/Forum/readThread.asp, line 35
```

Jag har genom att ändra i koden lyckats skriva ut svaren.
Resultatet blev dock att svaren från alla trådar skrevs ut.
Någon lösning?

Permalänk: https://www.webforum.nu/p/1235761

## #17 — Sebbe, 2003-12-21T22:57Z

Det är mycket lättare att hjälpa om du på något sätt markerar den felande raden, t.ex. med \[.b\] \[./b\].

Permalänk: https://www.webforum.nu/p/1235787

## #18 — magnusfernstrom, 2003-12-22T00:17Z

Ja det är ju det jag inte vet!
Eller det står ju rad 35. Men jag kan inte hitta något felaktigt.
Kan du?

Permalänk: https://www.webforum.nu/p/1235828

## #19 — Mog, 2003-12-22T02:59Z

Jag har testat filerna och hittat ett flertal fel i koden.
Bifogar en zip med alla filerna i kördugligt skick kopplade mot en access-databas.

Bilagor:

- [forum.zip](https://www.webforum.nu/a/2499.zip)

Permalänk: https://www.webforum.nu/p/1235869

## #20 — magnusfernstrom, 2003-12-24T00:39Z

Oj, tack så hemskt mycket Mog...
God jul på er förresten

Mvh Magnus Fernström

Permalänk: https://www.webforum.nu/p/1236813

---

Tråden på webben: https://www.webforum.nu/amne/asp/93179-fel-i-forum-kod  
Nästa sida: https://www.webforum.nu/amne/asp/93179-fel-i-forum-kod/page2.md
