Avatar billede peterkopi Nybegynder
03. april 2003 - 17:11 Der er 28 kommentarer og
1 løsning

Fejl ved log ind til LINKS-admin

Jeg får flg. fejl når jeg vil logge ind i min nye linksadmin:

**********
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/Kontakt/admin.asp, line 93
**********

Linjerne 90-93 ser sådan ud:

90: Set rs = Server.CreateObject("ADODB.RecordSet")
91: strSQL = "SELECT * FROM links WHERE godkendt='nej' ORDER BY navn"
92: strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
93: rs.Open strSQL, strConnect, 1

Hvad skal jeg lave om i linje 93?
Avatar billede mm12010 Nybegynder
03. april 2003 - 17:17 #1
93: rs.Open strSQL, strConnect, 1, 0
Avatar billede peterkopi Nybegynder
03. april 2003 - 17:31 #2
Nu får jeg flg. fejl:

DODB.Recordset error '800a0bb9'
Unknown runtime error
/Kontakt/admin.asp, line 93
Avatar billede eagleeye Praktikant
03. april 2003 - 18:00 #3
Prøv at skrive 3 i stedet for 0.:

rs.Open strSQL, strConnect, 1, 3
Avatar billede peterkopi Nybegynder
03. april 2003 - 18:12 #4
Med 3 i stedet for 0, får jeg flg. fejl:

Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/Kontakt/admin.asp, line 93
Avatar billede eagleeye Praktikant
03. april 2003 - 18:15 #5
Hvilken type er kolonnen godkendt ?
Avatar billede eagleeye Praktikant
03. april 2003 - 18:20 #6
Fejlen kan komme hvis et kolonnennavn er stavet forkert i forhold til som det ståri databasen. Eller hvis en kolonne får en forkert data type eksvis kolonen godkendt hvis det er et Ja/Nej felt skal du bruger 1 eller True for Ja og 0 eller false for Nej og uden ' omkring, sådan her:

strSQL = "SELECT * FROM links WHERE godkendt= false ORDER BY navn"
Avatar billede peterkopi Nybegynder
03. april 2003 - 18:29 #7
Skal der være et mellemrum mellem lighedstegnet og 'false' i ' godkendt= false ...' ?
Avatar billede peterkopi Nybegynder
03. april 2003 - 18:32 #8
Får stadig den SIDSTE fejl. Har indsat

strSQL = "SELECT * FROM links WHERE godkendt= false ORDER BY navn"
Avatar billede eagleeye Praktikant
03. april 2003 - 18:34 #9
Samme fejl?
Det skulle ikke være nødvendigt med mellemrum mellem = og false. Der skal bare være mellemrum mellem false og ORDER.

Prøv at tjekke kolonnnenanve er skrevet rigtig. Eksvis godkendt vs. godtkend
Avatar billede peterkopi Nybegynder
03. april 2003 - 18:52 #10
Tak for tippet eagleeye. Nu har jeg ændret 5 forekomster af 'godkendt' til 'godkend' (pinligt!)

Men jeg får stadig fejlen:

Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/Kontakt/admin.asp, line 93

Linje 93 ser stadig sådan ud:
rs.Open strSQL, strConnect, 1, 3
Avatar billede eagleeye Praktikant
03. april 2003 - 18:56 #11
Og kolonnen godkend er af type Ja/Nej ??
Avatar billede peterkopi Nybegynder
03. april 2003 - 18:59 #12
Aproppos kolonner og kontinuitet. Fandt lige ud af, at kolonnen med det unikke nummer (autonummerering) i db'en hedder 'ID1'. Flere steder i scriptet hedder den enten 'ID' eller 'id'.
Det skal jeg vel også have retter eller hvad?
Avatar billede eagleeye Praktikant
03. april 2003 - 19:02 #13
Ja så skal du bruge ID1 hvis der henvises til autonummer kolonnnen.
Avatar billede peterkopi Nybegynder
03. april 2003 - 19:03 #14
Apropos kolonner, del II:

Flg. kolonner er med i databasen, en Access97 (db):

ID1
kategori
navn
url
beskrivelse
hits
Sogeord

...øeh? Så mangler der ligesom en 'godkend'-kolonne, ikk'?

Føler mig også pligtig til lige at oplyse dig om, at scriptet er udviklet af Jakob Madsen, http://zoidberg.dk

Og jeg vil bare så gerne have det til at virke!
Avatar billede peterkopi Nybegynder
03. april 2003 - 19:04 #15
Ændrer lige alle forekomster af 'id' til 'ID1'. Augenklick..!
Avatar billede eagleeye Praktikant
03. april 2003 - 19:09 #16
Nej der er ikke en kolonnne som hedder godkend.

Hvis du vil hendte alle poster ud fra databasen så prøv at fjerne WHERE delen med godkend..:

strSQL = "SELECT * FROM links ORDER BY navn"
Avatar billede peterkopi Nybegynder
03. april 2003 - 19:23 #17
Skal lige over denne her først - så fjerner jeg WEHERE-delen med godkend fra linjen.

Status lige nu:
Efter ensretningen af alle kolonnenavnene ændrede jeg linje 93 tilbage til det oprindelige - får nu flg.:

Microsoft VBScript compilation error '800a03ea'
Syntax error
/Kontakt/admin.asp, line 93

rs.Open strSQL, strConnect, 1,
------------------------------^

PS! Du hjælper mig virkelig (og det er ISÆR meget for en ASP-novice som mig!!!)
Skal jeg ikke til at smide lidt flere point til dig..?
Avatar billede eagleeye Praktikant
03. april 2003 - 19:29 #18
Du skal enten havde det sidste , væk eller tilføje et 3 tal:
rs.Open strSQL, strConnect, 1
rs.Open strSQL, strConnect, 1,3
Avatar billede peterkopi Nybegynder
03. april 2003 - 19:34 #19
Linjen rs.Open strSQL, strConnect, 1
giver fejlen:

Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/Kontakt/admin.asp, line 93

Linjen rs.Open strSQL, strConnect, 1, 3
giver samme fejlmeddelelse!

:-(
Avatar billede eagleeye Praktikant
03. april 2003 - 19:36 #20
Hvad hedder den tabel som der er i Access databasen?
Avatar billede peterkopi Nybegynder
03. april 2003 - 19:39 #21
Access-tabellen hedder links
Avatar billede eagleeye Praktikant
03. april 2003 - 19:46 #22
Prøv at tilføje et connection object også lav koden sådan her.


Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strSQL = "SELECT * FROM links"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
Conn.Open strConnect
rs.Open strSQL, Conn, 1, 3
Avatar billede peterkopi Nybegynder
03. april 2003 - 20:00 #23
Afprøvet! På siden http://www.peterogdeandrekopier.dk/Kontakt/admin.asp?mode=login
får jeg nu en helt NY! meddelelse:

Microsoft VBScript compilation error '800a03f6'
Expected 'End'
/Kontakt/admin.asp, line 121

else
^

Linje 118-126 indeholder:

118:rs.Close
119:Set rs = Nothing
120:
121:else
122:response.redirect("admin.asp?mode=login")
123:end if
124:
125:end select
126:%>

Siden afsluttes (/body + /html)
Avatar billede eagleeye Praktikant
03. april 2003 - 20:11 #24
Det kunne tyde på der er to else's i koden når den forvendter End i den linjen med else.

Eller måske mangler der et next til en for eller loop til en do while.
Avatar billede peterkopi Nybegynder
03. april 2003 - 20:27 #25
admin.asp i vores linksystem ser sådan ud:

<% response.buffer = true %>
<html>
<head>
<title>Linksystem - Admin</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<style type="text/css">
<!--
body {margin: 5;font-family:verdana}
a.menu {text-decoration:none;color:#000000}
a.menu:hover {text-decoration:none;color:#FF5500}
a {text-decoration:none;color:#3366FF}
a:hover {text-decoration:underline;color:#333333}
INPUT
{
    BACKGROUND-COLOR: #FFFFFF;
    COLOR: #000000;
    FONT-FAMILY: verdana, helvetica, sans-serif;
    FONT-SIZE: 12px;
    FONT-STYLE: normal;
    border: 1 solid #000000;
}
Textarea
{
    BACKGROUND-COLOR: #FFFFFF;
    COLOR: #000000;
    FONT-FAMILY: verdana, helvetica, sans-serif;
    FONT-SIZE: 12px;
    FONT-STYLE: normal;
    border: 1 solid #000000;
}
-->
</style>
</head>
<body>
<%
strMode = request("mode")
select case strMode

case "godkend"

if session("password") = "test" then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("links.mdb")
Set rs = Conn.Execute("UPDATE links SET godkend = 'ja' WHERE id = " & request("ID1"))
Conn.Close
Set Conn = Nothing
response.redirect("admin.asp")

else
response.redirect("admin.asp?mode=login")
end if

case "slet"

if session("password") = "test" then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("links.mdb")
Set rs = Conn.Execute("DELETE FROM links WHERE id = " & request("ID1"))
Conn.Close
Set Conn = Nothing
response.redirect("admin.asp")

else
response.redirect("admin.asp?mode=login")
end if

Case "login"

if request.form("password") = "test" then
session("password") = "test"
response.redirect("admin.asp")
else
%>
<form action="admin.asp?mode=login" method="post">
<table><tr><td><input type="password" name="password"><br><input type="submit" value="login"></td></tr></table>
</form>
<%
end if

case "logout"
session.abandon
response.redirect("admin.asp?mode=login")

case else

if session("password") = "test" then

Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strSQL = "SELECT * FROM links"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
Conn.Open strConnect
rs.Open strSQL, Conn, 1, 3
    Response.Write "<table width='500' cellspacing='1' cellpadding='3'>"
    Response.Write "<tr><td valign=top width='100%' colspan=3 bgcolor=#e5e5e5><font size=""1""><b>Links</b> » <b>Admin</b></font></td></tr>"
    Response.Write "<tr><td valign=top width='100%' colspan=3 bgcolor=#CCCCCC><font size=""1""><b>Nye links</b></font></td></tr>"

  Do While Not rs.EOF

If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If

        Response.Write "<tr><td bgcolor=""" & bg & """><font size=2><b><a href='" & rs("url") & "'>" & rs("Navn") & "</a></b></font></td><td bgcolor=""" & bg & """><font size=2>&nbsp;<b><a href=admin.asp?mode=godkend&id=" & rs("ID1") & ">Godkend</a></b></font></td><td bgcolor=""" & bg & """><font size=2><b><a href=admin.asp?mode=slet&id=" & rs("ID1") & ">Slet</a></b></font></td></tr>"
  rs.MoveNext
  Loop
response.write "<tr><td align=""right"" colspan=""3"" bgcolor=""#CCCCCC""><font size=""1""><b><a href='links.asp' class=""menu"">» Oversigt</a>&nbsp;&nbsp;&nbsp;<a href='links.asp?mode=søg' class=""menu"">» Søg i links</a>&nbsp;&nbsp;&nbsp;<a href='links.asp?mode=add' class=""menu"">» Tilføj links</a></b>&nbsp;&nbsp;</font></td></tr></table></td></tr>"
else
response.write "<tr><td bgcoloe=""#E5E5E5""><font size=""2""><b>Ingen nye links!</b></font></td></tr>"
End If
    Response.Write "</table>"
rs.Close
Set rs = Nothing

else
response.redirect("admin.asp?mode=login")
end if

end select
%>
</body>
</html>
Avatar billede eagleeye Praktikant
03. april 2003 - 20:31 #26
Det sidste

else
response.redirect("admin.asp?mode=login")
end if


Der mangler en if sætning til den else del. Prøv evt bare at fjerne de 3 linjer da der er redirects andre steder i koden.
Avatar billede peterkopi Nybegynder
03. april 2003 - 20:58 #27
HURRA! Det var nok til at jeg kan komme ind på admin.asp. Scriptet lister nu de 15 "nye" links, der mangler admins "godkendelse". Tusinde tak for din hjælp indtil nu - jeg har hævet pointene til max. for din ulejlighed.

Mon ikke if-sætningen bare skal tjekke, om man er logget ind?

Nu virker det for så vidt. Men jeg får godt nok en ny fejl et andet sted i koden - håber du er frisk på evt. at hjælpe mig videre i et nyt spm?
Avatar billede eagleeye Praktikant
03. april 2003 - 21:07 #28
>>Mon ikke if-sætningen bare skal tjekke, om man er logget ind?

Jo måske, men eftersom login formen er i samme kode, inde i Select Case. Så ville jeg mene de 3 linjer bare skal fjernes, hvis den tjekker på om man er logget ind først og man ikke er logget ind så kan man ikke få login formen frem så vil den redirecte og loade samme side i en uendelighed.

Ja måske, hvilken fejl får du?
Avatar billede peterkopi Nybegynder
03. april 2003 - 21:31 #29
En hel stribe :-/

Du kan se dem beskrevet her: http://www.eksperten.dk/spm/337076
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