Antingen så finns inte ref_id eller id i tabellen personligt.
If RecSet("ref_id") = 0 Then
id = RecSet("id")
------------------
essentitia preter non sans multiplicandum
19 svar · 244 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")
------------------
essentitia preter non sans multiplicandum
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?
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
%>
Då har inte Request.Querystring("id") något värde.
Var kommer det ifrån? Länk? Formulär?
------------------
All your base are belong to me.
Hej!
Kan bero på flera orsaker.
Request.QueryString("id") innehåller inget värde. Eller är id av texttyp.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Det verkar som ID2 är en tom sträng
dvs att querystring inte innehåller någon variabel som heter id.
------------------
essentitia preter non sans multiplicandum
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,
------------------
All your base are belong to me.
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...
Om du berättar vad det är för knas / knasmeddelande så är det lättare att hjälpa dig. :-)
Mvh,
------------------
All your base are belong to me.
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?
------------------
All your base are belong to me.
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?
------------------
All your base are belong to me.
det är ett forum jag försöker att bygga på nytt...
Hej!
Varifrån i koden kommer värdet som Request.Querystring("id") ska innehålla?
mvh Jörgen ;)
------------------
Varför bråka när man kan kramas?
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,
------------------
All your base are belong to me.
[Redigerat av @nders den 26 okt 2001]