Avatar billede EIHP Juniormester
31. marts 2004 - 12:27 Der er 16 kommentarer og
4 løsninger

Asp fejl ved insert til access database

JEg bliver ved med at få denne her fejl

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/guestbook/guestbook.asp, line 24

Min kode:
<%
If session("id") = "" Then
Response.Redirect("main.asp")
End IF

If request("mode") = "write" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb")
Conn.Open DSN

strSQL = "Insert into Guest ("

strSQL = strSQL & "Userid, "
strSQL = strSQL & "Writeid, "
strSQL = strSQL & "Text) "

strSQL = strSQL & "values( "

strSQL = strSQL & request("id") & ", "
strSQL = strSQL & session("id") & ", "
strSQL = strSQL & "'" & request.form("Text") & "')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
Response.Redirect("guestbook.asp?id=" & request("id"))
End If
Avatar billede trumf Nybegynder
31. marts 2004 - 12:31 #1
Det er nok fordi der ikke står noget i request("id") eller session("id")
Avatar billede trumf Nybegynder
31. marts 2004 - 12:32 #2
prøv evt. at lave en response.write(strSQL) før Conn.Execute(strSQL)
så kan du se hvad der sker...
Avatar billede EIHP Juniormester
31. marts 2004 - 12:34 #3
resultat: Insert into Guest (Userid, Writeid, Text) values( 1, 1, 'Hej')
Avatar billede medions Nybegynder
31. marts 2004 - 12:40 #4
<%
If session("id") = "" Then
Response.Redirect("main.asp")
End IF

If request("mode") = "write" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb")
Conn.Open DSN

strSQL = "Insert into Guest ("

strSQL = strSQL & "Userid, "
strSQL = strSQL & "Writeid, "
strSQL = strSQL & "[Text]) "

strSQL = strSQL & "values( "

strSQL = strSQL & request("id") & ", "
strSQL = strSQL & session("id") & ", "
strSQL = strSQL & "'" & request.form("Text") & "')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
Response.Redirect("guestbook.asp?id=" & request("id"))
End If


Text er et reserveret ord!

//>Rune
Avatar billede trumf Nybegynder
31. marts 2004 - 12:42 #5
Der skal være mellemrum mellem VALUES og (
Avatar billede EIHP Juniormester
31. marts 2004 - 13:02 #6
Tak medions.. MEn nu for jeg en anden fejl..

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/guestbook/guestbook.asp, line 78


<%
If session("id") = "" Then
Response.Redirect("main.asp")
End IF

If request("mode") = "write" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb")
Conn.Open DSN

strSQL = "Insert into Guest ("

strSQL = strSQL & "Userid, "
strSQL = strSQL & "Writeid, "
strSQL = strSQL & "[Text]) "

strSQL = strSQL & "values("

strSQL = strSQL & request("id") & ", "
strSQL = strSQL & session("id") & ", "
strSQL = strSQL & "'" & request.form("Text") & "')"

response.write(strSQL)
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
Response.Redirect("guestbook.asp?id=" & request("id"))
Else
%><!--#include file="function.asp"--><html>
<head>
<meta http-equiv="Content-Language" content="da">
<link rel="STYLESHEET" type="text/css" href="css.css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>FunStuff.dk</title>
</head>
<body topmargin="2" leftmargin="3">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="570">
  <tr>
    <td width="100%"><b><font face="Verdana" size="1"><a href="profil.asp?id=<%=request("id")%>" target="main"><%=Guestname(request("id"))%></a>
    | <a href="guestbook.asp?id=<%=request("id")%>" target="main">Gæstebog (0)</a>
    |
    Fotos (0) | Venner (0) | Dagbog | Vennebog</font></b></td>
  </tr>
</table>
<br>
<center>
<form method="POST" action="guestbook.asp?mode=write&id=<%=request("id")%>">
  <table border="0" cellpadding="0" cellspacing="0" width="529">
    <tr>
      <td width="250"><textarea rows="4" name="Text" cols="39"></textarea></td>
      <td width="279"><input type="submit" value="Skriv i gæstebogen" name="submit"></td>
    </tr>
  </table>
</form>
</center>
<br>
<table border="0" cellpadding="0" cellspacing="0" width="500">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb")
Conn.Open DSN

strSQL = "Select * From Guest Where Userid = " & request("id") & " Order by Id Desc"
Set rs = Conn.Execute(strSQL)

If rs.EOF Then
%><tr><td valign="top"><font face="Verdana" size="1">Der er ingen der har skrevet i gæstebogen endnu</font></td></tr><%
Else
Do

%><tr>
    <td width="143" valign="top"><font face="Verdana" size="1">
    <font color="#5A5B5C"></font><b><%=Guestname(rs("Writeid"))%>
    </b><font color="#5A5B5C"><%=Guestuse(rs("Writeid"))%></font><b><br>
    </b><font color="#5A5B5C"><%=rs("Dato")%></font><br>
    <br><center>
    <font color="#5A5B5C">Slet | Gæstebog | Svar<br>
    Blocker | Privat/Offelig </font>
    </font></td>
    <td width="357" valign="top"><font face="Verdana" size="1"><%=rs("Text")%></font></td>
  </tr>
<%

rs.MoveNext
Loop While Not rs.EOF
End IF

Conn.Close
Set Conn = Nothing
%></table>

</body>
</html><%
End If%>
Avatar billede medions Nybegynder
31. marts 2004 - 13:08 #7
Hvad for en linje er linje 78?

//>Rune
Avatar billede medions Nybegynder
31. marts 2004 - 13:10 #8
Ahh ok... Du kan se her:

<%=Guestuse(rs("Writeid"))%> der har du kaldt dit recordset for Guestuse, og her:
Set rs = Conn.Execute(strSQL) har du defineret det til at være rs. så ret Guestuse til rs alle de steder hvor du henter fra databasen, så skulle det gerne virke! :)

//>Rune
Avatar billede EIHP Juniormester
31. marts 2004 - 13:13 #9
Function Guestuse(Userid)
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/users.mdb")
Conn.Open DSN

strSQL = "Select * from Users where id = " & Userid
Set rs = Conn.Execute(strSQL)

If rs.EOF Then
Guestuse = "P99"
Else
Guestuse = rs("Kon") & rs("Alder")
End If

Conn.Close
Set Conn = Nothing
End Function
Avatar billede medions Nybegynder
31. marts 2004 - 13:14 #10
Ok, så spørger jeg igen, hvilken _ linje _ er _ linje _ 78 ???

//>Rune
Avatar billede EIHP Juniormester
31. marts 2004 - 13:17 #11
<td width="143" valign="top"><font face="Verdana" size="1">
    <font color="#5A5B5C"></font><b><%=Guestname(rs("Writeid"))%>
    </b><font color="#5A5B5C"><%=Guestuse(rs("Writeid"))%></font><b><br>  <<<<<--- Den der
Avatar billede medions Nybegynder
31. marts 2004 - 13:20 #12
Prøv lige sådan:

<%
If session("id") = "" Then
Response.Redirect("main.asp")
End IF

If request("mode") = "write" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb")
Conn.Open DSN

strSQL = "Insert into Guest ("

strSQL = strSQL & "Userid, "
strSQL = strSQL & "Writeid, "
strSQL = strSQL & "[Text]) "

strSQL = strSQL & "values("

strSQL = strSQL & request("id") & ", "
strSQL = strSQL & session("id") & ", "
strSQL = strSQL & "'" & request.form("Text") & "')"

response.write(strSQL)
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
Response.Redirect("guestbook.asp?id=" & request("id"))
Else
%><!--#include file="function.asp"--><html>
<head>
<meta http-equiv="Content-Language" content="da">
<link rel="STYLESHEET" type="text/css" href="css.css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>FunStuff.dk</title>
</head>
<body topmargin="2" leftmargin="3">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="570">
  <tr>
    <td width="100%"><b><font face="Verdana" size="1"><a href="profil.asp?id=<%=request("id")%>" target="main"><%=Guestname(request("id"))%></a>
    | <a href="guestbook.asp?id=<%=request("id")%>" target="main">Gæstebog (0)</a>
    |
    Fotos (0) | Venner (0) | Dagbog | Vennebog</font></b></td>
  </tr>
</table>
<br>
<center>
<form method="POST" action="guestbook.asp?mode=write&id=<%=request("id")%>">
  <table border="0" cellpadding="0" cellspacing="0" width="529">
    <tr>
      <td width="250"><textarea rows="4" name="Text" cols="39"></textarea></td>
      <td width="279"><input type="submit" value="Skriv i gæstebogen" name="submit"></td>
    </tr>
  </table>
</form>
</center>
<br>
<table border="0" cellpadding="0" cellspacing="0" width="500">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/guestbook.mdb")
Conn.Open DSN

strSQL = "Select * From Guest Where Userid = " & request("id") & " Order by Id Desc"
Set rs = Conn.Execute(strSQL)
strWriteID = rs("Writeid")

If rs.EOF Then
%><tr><td valign="top"><font face="Verdana" size="1">Der er ingen der har skrevet i gæstebogen endnu</font></td></tr><%
Else
Do

%><tr>
    <td width="143" valign="top"><font face="Verdana" size="1">
    <font color="#5A5B5C"></font><b><%=Guestname(strWriteID)%>
    </b><font color="#5A5B5C"><%=Guestuse(strWriteID)%></font><b><br>
    </b><font color="#5A5B5C"><%=rs("Dato")%></font><br>
    <br><center>
    <font color="#5A5B5C">Slet | Gæstebog | Svar<br>
    Blocker | Privat/Offelig </font>
    </font></td>
    <td width="357" valign="top"><font face="Verdana" size="1"><%=rs("Text")%></font></td>
  </tr>
<%

rs.MoveNext
Loop While Not rs.EOF
End IF

Conn.Close
Set Conn = Nothing
%></table>

</body>
</html><%
End If%>

//>Rune
Avatar billede EIHP Juniormester
31. marts 2004 - 13:22 #13
Samme fejl... Jeg har en anden tanke..

Function Guestuse(Userid)
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/users.mdb")
Conn.Open DSN

strSQL = "Select * from Users where id = " & Userid
Set rs = Conn.Execute(strSQL)

If rs.EOF Then
Guestuse = "P99"
Else
Guestuse = rs("Kon") & rs("Alder")
End If

Conn.Close
Set Conn = Nothing
End Function

Kon er text felt, og alder er number... Kan det være fejlen?
Avatar billede medions Nybegynder
31. marts 2004 - 13:26 #14
Nej, det har ike ngoet med det at gøre... men er du sikker på dine felter er korrekt stavet?

If rs.EOF Then
Guestuse = "P99"
Else
Guestuse = CStr(rs("Kon")) & Str(rs("Alder"))
End If

//>Rune
Avatar billede EIHP Juniormester
31. marts 2004 - 13:29 #15
Ja.. Men det er somom, serveren har svært ved at hente visse records i databasen :S

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'Str'

/guestbook/function.asp, line 121

Den har også svært ved at hentet et felt der hedder Tekst i samme database.. Ingen problemer med at insert eller update.. Kun select... :S
Avatar billede EIHP Juniormester
31. marts 2004 - 13:36 #16
Evt.. Databasen kan hentes her: www.googus.dk/users.mdb
Avatar billede medions Nybegynder
31. marts 2004 - 13:40 #17
Jeg har løst dit første problem, og jeg syntes det her går for vidt for 30 points.

//>Rune
Avatar billede medions Nybegynder
31. marts 2004 - 13:49 #18
prøv lgie at zip dit projekt og send det til rune@medions.dk så kigger jeg lige på det!

//>Rune
Avatar billede EIHP Juniormester
31. marts 2004 - 14:28 #19
Takker rune
Avatar billede medions Nybegynder
31. marts 2004 - 14:30 #20
Thx 4 Poinz

//>Rune
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