Avatar billede hehlers Nybegynder
15. juni 2004 - 09:30 Der er 32 kommentarer og
2 løsninger

Menu og html fra database

Hejsa...

Jeg har en web side som skal hente data fra 2 tabeller i en access DB.

Jeg får dog en klassisk fejl med:
"Item cannot be found in the collection corresponding to the requested name or ordinal.

/ny/default.asp, line 71 "

Jeg kan ikke rigtigt se hvilken fejl jeg laver. Kan i evt. se det i følgende kode:
_---------------------------------------------

<!-- #include file="DBOpen.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Henrik Ehlers - Digital Designer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/hehlers.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
    background-color: #acbac0;
}
-->
</style></head>
<%
    Query= " SELECT  * from tbl_menu where menu_vis = true order by menu_txt "
    Set ResMenu = Conn.Execute(Query)
    Session.LCID = 1030
%>

<body leftmargin="0" topmargin="0">
<table width="730" height="530" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <th background="image/bg_window.gif" scope="col"><table width="700" height="500" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr >
        <th height="60" colspan="3" scope="col" background="image/top_bg.gif">&nbsp;</th>
      </tr>
      <tr>
        <th height="200" colspan="3" scope="col"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="700" height="200">
          <param name="movie" value="work/movie_top.swf">
          <param name="quality" value="high">
          <embed src="work/movie_top.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="700" height="200"></embed>
        </object></th>
        </tr>
      <tr bgcolor="#FFFFFF">
        <th width="140" height="240" valign="top" background="image/ehlers_bg.jpg" scope="col">          <div align="center">
          <table width="140" border="0" cellspacing="2" cellpadding="2">
<%
    If not ResMenu.EOF then
    ResMenu.movefirst
    while not ResMenu.eof
%>
            <tr>
              <th scope="col" align="left"><a href="default.asp?link=<%=resMenu("menu_txt")%>" class="menuTxt"><%=resMenu("menu_txt")%></a></th>
            </tr>
<%
    ResMenu.MoveNext
    Wend
    resMenu.Close
    Set resMenu = Nothing
    End If
   
    'End if
%>
          </table>
        </div></th>
        <th width="420" valign="top" background="image/ehlers_bg_dark.jpg" scope="col"><table width="320" height="240" border="0" align="right" cellpadding="2" cellspacing="2">
<%
    link = request.Querystring("link")
   
    if link = "" then
        Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"
        ResSider = Conn.Execute(Query)
    else
        Query= " SELECT * from tbl_sider where side_navn ='" & link  &"'"
        ResSider = Conn.Execute(Query)
    end if       
%>   

          <tr>
            <th valign="top" scope="col"><div align="left"><%=ResSider("sider_html")%></div></th>
          </tr>

        </table>
          <div align="right"></div></th>
        <th width="140" scope="col">&nbsp;</th>
      </tr>
    </table></th>
  </tr>
</table>
</body>

</html>
<!-- #include file="DBClose.asp" -->
Avatar billede fennec Nybegynder
15. juni 2004 - 09:36 #1
Har du en kolonne på din tabel tbl_sider som hedder sider_html ???
For den siger at du ikke har...
Avatar billede vbcoder Nybegynder
15. juni 2004 - 09:36 #2
'Item cannot be found' betyder at du har stavet enten dit tabelnavn eller dit feltnavn forkert.

Dette sker i din query - så prøv at checke dine sql sætninger for stavefejl
Avatar billede yellow Nybegynder
15. juni 2004 - 09:36 #3
Er du sikker på du har et felt der hedder "sider_html" i din "tbl_sider"-tabel?

Umiddelbart antyder fejlen at du ikke har...
Avatar billede vbcoder Nybegynder
15. juni 2004 - 09:38 #4
eller din felt referencer
Avatar billede hehlers Nybegynder
15. juni 2004 - 09:57 #5
Tak for hjælpen, - en fornøjelse at der altid er så hurtig respons. Det var fordi jeg havde kaldt mit feltnavn noget andet, - stupid. ;)

Nu får jeg så bare fejlen med: "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/ny/default.asp, line 0
"
Det er kun når jeg kommer ind på siden, - altså når den skal vælge side_navn = Forside at den fejler. - Det virker fint nok i menuen.

Og der er en side i tabellen hvor side_navn = Forside

Jeg fatter det ikke, men sikkert bare en dum lille fejl. :)
Avatar billede fennec Nybegynder
15. juni 2004 - 10:24 #6
Nu kan vi så ikke se hvilken linje problemet er i, men prøv dette:

<th valign="top" scope="col"><div align="left"><% if not ResSider.eof then response.write ResSider("sider_html") %></div></th>
Avatar billede hehlers Nybegynder
15. juni 2004 - 10:41 #7
Øvs, så fejler den med:    Object doesn't support this property or method: 'ResSider.EOF'
Avatar billede hehlers Nybegynder
15. juni 2004 - 11:02 #8
Jeg vil tro at der er fejl i denne linie: 
Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"
Avatar billede yellow Nybegynder
15. juni 2004 - 11:21 #9
"Øvs, så fejler den med:    Object doesn't support this property or method: 'ResSider.EOF'"
Jeg tror ikke den genkender resSider som et recordsetobject når det kun bliver initieret med conn.execute.

Prøv med:
    Set ResSider = Server.CreateObject("ADODB.Recordset")
    if link = "" then
        Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"
    else
        Query= " SELECT * from tbl_sider where side_navn ='" & link  &"'"
    end if       
    ResSider.Open Query,Conn,1,1
Avatar billede fennec Nybegynder
15. juni 2004 - 11:25 #10
yellow >>
du har ret. Der magler "set" i koden som den var.

    if link = "" then
        Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"
        set ResSider = Conn.Execute(Query)
    else
        Query= " SELECT * from tbl_sider where side_navn ='" & link  &"'"
        set ResSider = Conn.Execute(Query)
    end if
Avatar billede hehlers Nybegynder
15. juni 2004 - 11:42 #11
Det hjalp desværre ikke... - har det ikke noget at gøre med at jeg ikke definerer Forside, ligesom jeg gør ved "link"?

Sorry at jeg ikke er den store programmeringsørn...
Avatar billede fennec Nybegynder
15. juni 2004 - 11:49 #12
får du fejl hvis du bruger...
<% if not ResSider.eof then response.write ResSider("sider_html") %>
... til at udskrive med????
Avatar billede hehlers Nybegynder
15. juni 2004 - 12:37 #13
ja, så får jeg Object doesn't support this property or method: 'ResSider.EOF' :)
Avatar billede fennec Nybegynder
15. juni 2004 - 12:40 #14
og du har også skrevet "set ResSider = Conn.Execute(Query)"??
Avatar billede hehlers Nybegynder
15. juni 2004 - 12:57 #15
ja, desværre. :)
Avatar billede fennec Nybegynder
15. juni 2004 - 12:59 #16
og yellow's metode virker heller ikke???
Avatar billede hehlers Nybegynder
15. juni 2004 - 12:59 #17
Den fejler som sagt kun når jeg kommer ind på siden første gang, når jeg trykker på link, så virker det godt nok.

Jeg har koden sådan her nu:
<%
    link = request.Querystring("link")
   
      Set ResSider = Server.CreateObject("ADODB.Recordset")
    if link = "" then
        Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"
    else
        Query= " SELECT * from tbl_sider where side_navn ='" & link  &"'"
    end if       
    ResSider.Open Query,Conn,1,1
    if not ResSider.eof then response.write ResSider("side_html")       
%>   

Du kan se fejlen her:
http://www.hehlers.dk/ny/
Avatar billede fennec Nybegynder
15. juni 2004 - 13:03 #18
prøv lige at poste hele din kode, som den er nu. Det kan være fra et andet sted, da vi ikke får et linjenummer.
Avatar billede hehlers Nybegynder
15. juni 2004 - 13:09 #19
ok... - og tak for tålmodigheden. ;)
----------------------

<!-- #include file="DBOpen.asp" -->

<%
Response.Clear()
response.Buffer = false
ErrText = Request.Querystring("etx")
Session("ActiveUser")=""

If Request.ServerVariables("REQUEST_METHOD") = "POST" then

%><!-- #include file="DBopen.asp" --><% 

usr = request.form("usr")
pwd = request.form("pwd")

Query = "SELECT * FROM tbl_login WHERE login_name='" & usr  & "' AND login_password='" & pwd & "'"
Set Res = Conn.Execute(Query)

If Res.BOF And Res.EOF Then
    Session("ErrText") = "Forkert login el. brugernavn!"
    Res.Close
Else
    Session("ErrText") = ""
    Session("ActiveUser")=Res("login_name")
    Session("id")=Res("id")
    Session("login_access")=Res("login_access")
    Session.Timeout = 40
   
    Res.Close
    Conn.close
    Set Conn = Nothing
    Response.Redirect("http://www.dr.dk"
   
   
End if

End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Henrik Ehlers - Digital Designer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/hehlers.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
    background-color: #acbac0;
}
-->
</style></head>
<%
    Query= " SELECT  * from tbl_menu where menu_vis = true order by id "
    Set ResMenu = Conn.Execute(Query)
    Session.LCID = 1030
%>

<body leftmargin="0" topmargin="0">
<table width="730" height="550" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <th background="image/bg_window.gif" scope="col"><table width="700" height="500" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr >
        <th height="60" colspan="3" scope="col" background="image/top_bg.gif"><div align="right">
       
       
       
        </div></th>
      </tr>
      <tr>
        <th height="200" colspan="3" scope="col"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="700" height="200">
          <param name="movie" value="work/movie_top.swf">
          <param name="quality" value="high">
          <embed src="work/movie_top.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="700" height="200"></embed>
        </object></th>
        </tr>
      <tr bgcolor="#FFFFFF">
        <th width="140" height="240" valign="top" background="image/ehlers_bg.jpg" scope="col">          <div align="center">
          <table width="140" border="0" cellspacing="2" cellpadding="2">
<%
    If not ResMenu.EOF then
    ResMenu.movefirst
    while not ResMenu.eof
%>
            <tr>
              <th scope="col" align="left"><a href="default.asp?link=<%=resMenu("menu_txt")%>" class="menuTxt"><%=resMenu("menu_txt")%></a></th>
            </tr>
<%
    ResMenu.MoveNext
    Wend
    resMenu.Close
    Set resMenu = Nothing
    End If
   
    'End if
%>
          </table>
        </div></th>
        <th width="420" valign="top" background="image/ehlers_bg_dark.jpg" scope="col"><table width="320" height="240" border="0" align="right" cellpadding="2" cellspacing="2">
<%
    link = request.Querystring("link")
   
      Set ResSider = Server.CreateObject("ADODB.Recordset")
    if link = "" then
        Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"
    else
        Query= " SELECT * from tbl_sider where side_navn ='" & link  &"'"
    end if       
    ResSider.Open Query,Conn,1,1
    if not ResSider.eof then response.write ResSider("side_html")       
%>   

          <tr>
            <th valign="top" scope="col" class="almTxt"><div align="left"><span class="menuTxtBold"><%=ResSider("side_over")%></span><br>
                <%=ResSider("side_html")%></div></th>
          </tr>

        </table>
          <div align="right"></div></th>
        <th width="140" valign="top" scope="col">  <form method="post" action="default.asp" name="loginform">
                 
                    <table width="120" border="0" align="right" cellpadding="1" cellspacing="1" class="almTxt">
                      <tr>
                        <td width="171"></td>
                        <td width="129"><div align="right"> <input name="usr" type="text" class="inputLille" value="Brugernavn" size="20"></div></td>
                      </tr>
                      <tr>
                        <td width="171"></td>
                        <td width="129"><div align="right"> <input name="pwd" type="password" class="inputLille" value="Password" size="20"></div></td>
                      </tr>
                      <tr>
                        <td colspan="2" class="red"><div align="right"><%= Session("ErrText") %></div></td>
                      </tr>
                      <tr>
                        <td colspan="2" class="red"><div align="right">
                          <input name="submit" type="submit" class="inputLille" value="Login">
                        </div></td>
                      </tr>
              </table>
                   

              </form></th>
      </tr>
    </table>
  </th>
  </tr>
  <tr>
    <th scope="col"><div align="left">&nbsp;&nbsp;&nbsp;<img src="image/hehlers_logo.gif" width="107" height="19"></div></th>
  </tr>
</table>
<br>
</body>

</html>
<!-- #include file="DBClose.asp" -->
Avatar billede fennec Nybegynder
15. juni 2004 - 13:13 #20
linje 112

<tr>
  <th valign="top" scope="col" class="almTxt"><div align="left"><span class="menuTxtBold"><%=ResSider("side_over")%></span><br>
  <%=ResSider("side_html")%></div></th>
</tr>

skal være:

<tr>
  <th valign="top" scope="col" class="almTxt"><div align="left"><span class="menuTxtBold"><% if not ResSider.eof then resposne.write ResSider("side_over")%></span><br>
  <% if not ResSider.eof then response.write ResSider("side_html")%></div></th>
</tr>
Avatar billede fennec Nybegynder
15. juni 2004 - 13:15 #21
linje 104:
        Query= " SELECT * from tbl_sider where side_navn ='" & Forside & "'"

skal sikkert være:
        Query= " SELECT * from tbl_sider where side_navn ='Forside'"
Avatar billede hehlers Nybegynder
15. juni 2004 - 13:32 #22
Nu skriver den object required i ved denne linie: 

        <tr>
  <th valign="top" scope="col" class="almTxt"><div align="left"><span class="menuTxtBold"><% if not ResSider.eof then resposne.write ResSider("side_over")%></span><br>
  <% if not ResSider.eof then response.write ResSider("side_html")%></div></th>
</tr>
Avatar billede fennec Nybegynder
15. juni 2004 - 13:40 #23
prøv at fjerne ...
    if not ResSider.eof then response.write ResSider("side_html")       
.. fra linje 109. Det bliver vist ikke brugt til noget.
Avatar billede yellow Nybegynder
15. juni 2004 - 13:44 #24
resposne.write ...
Avatar billede hehlers Nybegynder
15. juni 2004 - 13:44 #25
Den har jeg fjernet... Glemte jeg lige at sige,- sorry
Avatar billede fennec Nybegynder
15. juni 2004 - 14:20 #26
Har du rette den skrivefejl, som yellow så???
Avatar billede hehlers Nybegynder
15. juni 2004 - 14:45 #27
hehe ja, det står sådan her, ligesom yellow skrev:    <%
    link = request.Querystring("link")
   
      Set ResSider = Server.CreateObject("ADODB.Recordset")
    if link = "" then
        Query= " SELECT * from tbl_sider where side_navn ='Forside'"
    else
        Query= " SELECT * from tbl_sider where side_navn ='" & link  &"'"
    end if       
    ResSider.Open Query,Conn,1,1
    'if not ResSider.eof then response.write ResSider("side_html")       
%>
Avatar billede fennec Nybegynder
16. juni 2004 - 08:10 #28
det er ikke der.
Se din post "15/06-2004 13:32:50" der er response.write skrevet forkert.
Avatar billede hehlers Nybegynder
16. juni 2004 - 08:42 #29
Tusind tak fennec, - svarer du lige ? :)
Avatar billede fennec Nybegynder
16. juni 2004 - 08:46 #30
ok, men skal yellow ikke også have nogle point???
Avatar billede hehlers Nybegynder
16. juni 2004 - 08:48 #31
Hellere end gerne, - har man mulighed for at give flere brugere point?
Avatar billede yellow Nybegynder
16. juni 2004 - 08:58 #32
Ja, man kan acceptere flere svar.
Avatar billede fennec Nybegynder
16. juni 2004 - 09:09 #33
Hvis du så vælger os begge i listen nu, bliver point fordelt lige mellem os, men du kan også vælge den avanceret måde, også kan du bestemme hvordan point skal fordeles.
Avatar billede hehlers Nybegynder
16. juni 2004 - 09:34 #34
Tusind tak til jer begge.. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester