Antingen så finns inte ref_id eller id i tabellen personligt.
If RecSet("ref_id") = 0 Then
id = RecSet("id")
19 svar · 270 visningar · startad av Gimbo
Jag får detta felmeddelande:
ADODB.Recordset fel '800a0cc1'
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.
/ska/forum/default.asp, rad 76
Och kodraderna ser ut så här:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt ORDER BY datum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
If RecSet("ref_id") = 0 Then
id = RecSet("id")
%>
Antingen så finns inte ref_id eller id i tabellen personligt.
If RecSet("ref_id") = 0 Then
id = RecSet("id")
ref_id finns inte men vart i tabellen ska jag lägga den??
spelar det ngn roll i vilken följd? alltså om den ska vara sist i tabellen eller?
Ordningen har ingen betydelse.
har lagt till det där och nu får jag detta felmedelande i en annan fil:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id='.
/ska/forum/inlagg.asp, rad 13
kod raden ser ut så här:
<%
ID2 = Request.QueryString("id")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt WHERE id="&ID2
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
Hej!
Kan bero på flera orsaker.
Request.QueryString("id") innehåller inget värde. Eller är id av texttyp.
mvh Jörgen
Det verkar som ID2 är en tom sträng
dvs att querystring inte innehåller någon variabel som heter id.
Skall det inte vara &-tecken på båda sidor av ID2 ?
Skall det inte vara &-tecken på båda sidor av ID2 ?
&-tecken används när man skall lägga ihop, konkatenera, strängar. Här behöver vi inte lägga till någon sträng efter ID2, och således behöver vi inte heller något &-tecken.
Mvh,
så här ser hela min fil ut:
<!-- #include file="..\adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("namn") = Request.Form("namn")
RecSet("epost") = Request.Form("epost")
RecSet("rubrik") = Request.Form("rubrik")
RecSet("inlagg") = Request.Form("inlagg")
RecSet("datum") = Now
RecSet("ipnummer") = Request.ServerVariables("REMOTE_ADDR")
If Request.QueryString("ID") = "svar" Then
RecSet("ref_id") = Request.QueryString("ref_id")
End If
RecSet.Update
RecSet.Close
If Request.QueryString("ID") = "svar" Then
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt WHERE id="&Request.QueryString("ref_id")
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
svar = RecSet("antalsvar")
RecSet("antalsvar") = svar + 1
RecSet.Update
RecSet.Close
End If
Connect.Close
Response.Redirect "default.asp"
%>
det är den filen som man lägger till en post i forumet och här e filen som det e knas med:
<!-- #include file="..\adovbs.inc" -->
<%
ID2 = Request.QueryString("id")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt WHERE id="&ID2
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
<html>
<head>
<title>Läser Svar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function verifiera()
{
if (document.forum.namn.value == "")
{
alert("Du måste skriva in ett namn!! :-)");
return false ;
}
if (document.forum.epost.value == "" ||
document.forum.epost.value.indexOf('@', 0) == -1)
{
alert("Ogiltig E-Post adress!");
return false;
}
if (document.forum.rubrik.value == "")
{
alert("Du måste skriva en rubrik");
return false;
}
if (document.forum.inlagg.value == "")
{
alert("Nu glömde du skriva själva inlägget!! ;-)");
return false;
}
}
// -->
</SCRIPT>
<LINK REL=stylesheet HREF="../style.css" TYPE="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="left">
<table width="545" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#FF9900" colspan="3" height="50">
<div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("rubrik")%></font></div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC" colspan="2" valign="top">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#CCCCCC">
<td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Skrivet
av:</b></font></td>
<td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("namn")%></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Epost:</b></font></td>
<td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="mailto:<%=RecSet("epost")%>"><%=RecSet("epost")%></a></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Datum:</b></font></td>
<td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="75"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Ip
nummer:</b></font></td>
<td width="125"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="http://www.ripe.net/cgi-bin/whois?query=<%=RecSet("ipnummer")%>" target="_blank"><%=RecSet("ipnummer")%></a></font></td>
</tr>
</table>
</td>
<td bgcolor="#999999" width="345" valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=Replace(TRIM(Server.HTMLEncode(RecSet("inlagg"))),vbcrlf,"<br>")%></font></td>
</tr>
</table>
<br>
<br>
<%
If RecSet("antalsvar") > 0 Then
RecSet.Close
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt ORDER BY datum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
<table width="545" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3">
<div align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Svar
på detta inlägg</font></div>
</td>
</tr>
<tr>
<td><b><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Rubrik</font></b></td>
<td><b><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Namn</font></b></td>
<td>
<div align="right"><font color="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Datum</font></b></font></div>
</td>
</tr>
<%
Do Until RecSet.EOF
If int(RecSet("ref_id")) = int(ID2) Then
%>
<tr>
<td bgcolor="#FF9900"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="svar.asp?ID=<%=RecSet("id")%>"><%=RecSet("rubrik")%></a></font></td>
<td bgcolor="#FF9900"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("namn")%></font></td>
<td bgcolor="#FF9900">
<div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></div>
</td>
</tr>
<%
End If
RecSet.MoveNext
Loop
%>
</table>
<%End If%>
</div>
<form name="forum" method="post" onSubmit="return verifiera()" action="add_post.asp?ID=svar&ref_id=<%=ID2%>">
<div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Svara
på detta inlägg:</b><br>
<input type="text" name="namn" size="30" maxlength="50" class="table">
Namn<br>
<input type="text" name="epost" size="30" maxlength="50" class="table">
Epost <br>
<input type="text" name="rubrik" size="30" maxlength="50" class="table">
Rubrik<br>
Fråga/inlägg <br>
<textarea name="inlagg" cols="45" rows="7" class="table"></textarea>
<br>
<input type="submit" name="kanpp" value="Skicka" class="knapp">
<input type="reset" name="Submit2" value="Rensa" class="knapp">
</font> </div>
</form>
<br>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"> </font>
<%RecSet.Close
Connect.Close
%>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="default.asp">Tillbaka</a></font>
</body>
</html>
Snälla tror ni att ni kan hitta felet...
felet är som nämnts tidigare dvs:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id='.
/ska/forum/inlagg.asp, rad 13
Och knaset är att Request.Querystring("id") är tom. Varifrån ska den komma?
kanske från den här filen?? jag vet inte hur ska jag fixa det...
<!-- #include file="..\adovbs.inc" -->
<html>
<head>
<title>Asp Forumet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function verifiera()
{
if (document.forum.namn.value == "")
{
alert("Du måste skriva in ett namn!! :-)");
return false ;
}
if (document.forum.epost.value == "" ||
document.forum.epost.value.indexOf('@', 0) == -1)
{
alert("Ogiltig E-Post adress!");
return false;
}
if (document.forum.rubrik.value == "")
{
alert("Du måste skriva en rubrik");
return false;
}
if (document.forum.inlagg.value == "")
{
alert("Nu glömde du skriva själva inlägget!! ;-)");
return false;
}
}
// -->
</SCRIPT>
<LINK REL=stylesheet HREF="../style.css" TYPE="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="left">
<table width="545" border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="tabell" bgcolor="#FF9900"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Asp
forumet</font></b></td>
</tr>
</table>
<br>
<table width="545" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>
<td width="270"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">Rubrik</font></b></td>
<td width="125"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#000000">Namn</font></b></td>
<td width="125">
<div align="left"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Datum</b></font></div>
</td>
</tr>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\db.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt ORDER BY datum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
If RecSet("ref_id") = 0 Then
id = RecSet("id")
%>
<tr>
<td width="25"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000">
<%If Recset("datum") > Now-3 Then%>
Nytt
<%End If%>
</font></td>
<td width="270" bgcolor="#FF9933"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="inlagg.asp?id=<%=id%>"><%=RecSet("rubrik")%></a></font></td>
<td width="125" bgcolor="#FF9933"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("namn")%></font></td>
<td width="125" bgcolor="#FF9933">
<div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet("datum")%></font></div>
</td>
</tr>
<%
Set RecSet2 = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From personligt ORDER BY datum DESC"
RecSet2.Open Addera, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet2.EOF
If id = RecSet2("ref_id") Then
id2=RecSet2("id")
%>
<tr>
<td width="25" bgcolor="#FFFFFF"> </td>
<td width="270" bgcolor="#FFFFFF"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
-svar-> <a href="svar.asp?id=<%=id2%>"><%=RecSet2("rubrik")%></a></font></td>
<td width="125" bgcolor="#FFFFFF"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet2("namn")%></font></td>
<td width="125" bgcolor="#FFFFFF">
<div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=RecSet2("datum")%></font></div>
</td>
</tr>
<% End If
RecSet2.MoveNext
Loop
%>
<%End If
RecSet.MoveNext
Loop
%>
</table>
</div>
<form name="forum" onSubmit="return verifiera()" method="post" action="add_post.asp">
<div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Lägg
till ett inlägg:</b><br>
<input type="text" name="namn" size="30" maxlength="50" class="table">
Namn<br>
<input type="text" name="epost" size="30" maxlength="50" class="table">
Epost <br>
<input type="text" name="rubrik" size="30" maxlength="50" class="table">
Rubrik<br>
Fråga/inlägg <br>
<textarea name="inlagg" cols="45" rows="7" class="table"></textarea>
<br>
<input type="submit" name="submit" value="Skicka" class="knapp">
<input type="reset" name="Submit2" value="Rensa" class="knapp">
</font> </div>
</form>
</body>
</html>
För att Request.Querystring("id") skall ha ett värde så måste du ju anropa asp-filen på det sättet, genom att antingen skapa en länk som ser ut som "blabla.asp?id=23" där 23 är värdet som ID2 ska ha, eller direkt skriva in det i adressraden i webbläsaren.
Vad vill du att det ska vara för värde? Var vill du att det ska komma ifrån?
det är ett forum jag försöker att bygga på nytt...
Jag har ingen aning, alltså kan jag sudda ut den raden och få forumet att fungera, eller ska jag lägga t till ngn rad?? och isådana fall vad??
Jag tror felet ligger i min databas fortfarande och inte i själva koden...
min databas bestå av tabellen presentation och kolumnerna: ID, Namn, epost, rubrik, inlagg, datum, ipnummer, ref_id
Jag tror det är den där ref_id som spökar, eller vad säger ni?
If RecSet("ref_id") = 0 Then
id = RecSet("id")
%>
<tr>
<td width="25"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FF0000">
<%If Recset("datum") > Now-3 Then%>
Nytt
<%End If%>
</font></td>
<td width="270" bgcolor="#FF9933"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="inlagg.asp?id=<%=id%>"><%=RecSet("rubrik")%></a></font></td>
Jag antar att det är denna länk som strular. När du klickar på länken, står det då inlagg.asp?id= eller inlagg.asp?id=23, där 23 är postens id i tabellen?
det känns dessutom som If RecSet("ref_id") = 0 Then
id = RecSet("id") skall stå på en och samma rad, liksom den jämförelsen med RecSet2.
Alltså:
If RecSet("ref_id") = 0 Then id = RecSet("id")
respektive
If id = RecSet2("ref_id") Then id2=RecSet2("id")
Nu måste jag pysa, men jag kollar in senare.
Red: Nu har jag kommit till jobbet, och undrar då genast vad dessa två if-satser gör. Det känns som att det händer att variabeln id kanske aldrig får ett värde.
Mvh,