Avatar billede dj-sejler Praktikant
12. december 2002 - 18:33 Der er 21 kommentarer og
2 løsninger

Add-script --> Jeg kan ikke få det til at virke

Jeg skal lave en side der hier den data frem fra databasen med en givet id-værdi

Request.QueryString("id")

Jeg har følgende skript:


<--- liste.asp --->

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../../log/bandholm.mdb")
Conn.Open DSN

strSQL = "Select * From medlem2002 Order by efternavn"
Set rs = Conn.Execute(strSQL)

Do
  ' Personens navn
  strNavn = rs("Fornavn") & " " & rs("Efternavn")

  ' lav et link til person.asp med Id-værdien i URL
  strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn & "</a>"

  ' lav et link til person.asp med Id-værdien i URL
  strLink2 = "<a href='ret-form.asp?id=" & rs("Id") & "'><font color='blue'>Ret</font></a>"

  ' Liste med links
  Response.Write "<li>" & strLink & " " & strLink2 & "</li>"

  rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>


<--- ret-form.asp --->

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../../../log/bandholm.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL


SQL = "SELECT * FROM medlem2002 WHERE id = " & Request.QueryString("id")
Set rs = Conn.Execute(SQL)

   
        strID = rs("ID")
        strType = rs("Type")
        strFornavn = rs("Fornavn")
        strEfternavn = rs("Efternavn")
        strGade = rs("Gade")
        strNr = rs("Nr")
        strPost = rs("Post")
        strBy = rs("By")
        strLand = rs("Land")
        strBaad = rs("Baad")
%>
<!--#include file="function.asp"-->

<html>
<title>Medlemskardotek</title>
<head>

<!--#include virtual="/style.css"-->

</head>
<body>
<dl>
<table cellpadding=2 cellspacing=2 border=1 bordercolor=black class=format width="500">

  <tr>
    <td width="100%" colspan="3">
    <br>

<form method="POST" action="ret-form.asp">
  <div align="center">
    <center>
    <table border="0" width="75%" cellspacing="0" cellpadding="0" height="223">
      <tr>
        <td width="100%" height="25"><%=strError%>
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">ID: <%=strid%></font><br>
          <input type="hidden" name="id" value="<%=strid%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Medlemstype:</font><br>
    <select name="Type" tabindex="1" value="<%=strType%>">
    <option value="Familie">Familie</option>
    <option value="Aktiv">Aktiv</option>
    <option value="Passiv">Passiv</option>
    <option value="Æresmedlem">Æresmedlem</option>
    </select>
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Fornavn:</font><br>
          <input type="text" name="Fornavn" size="28" class="box" tabindex="2" value="<%=strFornavn%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Efternavn:</font><br>
          <input type="text" name="Efternavn" size="28" class="box" tabindex="4" value="<%=strEfternavn%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Gadenavn:</font><br>
          <input type="text" name="Gade" size="28" class="box" tabindex="5" value="<%=strGade%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Husnummer:</font><br>
          <input type="text" name="Nr" size="28" class="box" tabindex="6" value="<%=strNr%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Postnummer:</font><br>
          <input type="text" name="Post" size="28" class="box" tabindex="7" value="<%=strPost%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">By:</font><br>
          <input type="text" name="By" size="28" class="box" tabindex="8" value="<%=strBy%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Land:</font><br>
          <input type="text" name="Land" size="28" class="box" tabindex="9" value="<%=strLand%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Bådnavn:</font><br>
          <input type="text" name="Baad" size="28" class="box" tabindex="10" value="<%=strBaad%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="46"><br>
          <input type="submit" value="  Send  " name="update" class="box" tabindex="11">&nbsp;&nbsp;
          <input type="button" value="  Fortryd  " name="Annuller" class="box" onClick="java script:location.href='medlem.asp'" tabindex="12">
        </td>
      </tr>
    </table>
    </center>
  </div>
</form>
<br></td></tr>
</table>
<%
SQL = "UPDATE medlem2002 SET Type = '" & RemoveHTML(Request.Form("Type")) & "', Fornavn = '" & RemoveHTML(Request.Form("Fornavn")) & "', Gade = '" & RemoveHTML(Request.Form("Gade")) & "', Nr = '" & RemoveHTML(Request.Form("Nr")) & "', Post = '" & RemoveHTML(Request.Form("Post")) & "', By = '" & RemoveHTML(Request.Form("By")) & "', Land = '" & RemoveHTML(Request.Form("Land")) & "', Baad = '" & RemoveHTML(Request.Form("Baad")) & "' WHERE id = " & Request.Form("id")
%>


Hvor værdierne fra databasen skulle sættes ind i formen igen, men det virker slet ikke :(
Er der nogen der kan hjælpe??

Jeg håber jeg har udtrykt mig klart nok
Avatar billede dj-sejler Praktikant
12. december 2002 - 18:35 #1
Jeg får følgende fejl når jeg trykker "Send":
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "id =".

/best/login/medlem/ret-form.asp, linje 23
Avatar billede dj-sejler Praktikant
12. december 2002 - 18:36 #2
Linie 23 er:
Set rs = Conn.Execute(SQL)
Avatar billede medions Nybegynder
12. december 2002 - 18:39 #3
SQL = "SELECT * FROM medlem2002 WHERE id = " & Request.Form("id")
Set rs = Conn.Execute(SQL)

//>Rune
Avatar billede medions Nybegynder
12. december 2002 - 18:41 #4
Din fejl opstår fordi der ikke bliver sendt noget data til din SQL Statement! -Du bruger nemlig POST som method, og siden du gør det skal du hente dine felter med Request.Form("felt")

Hvis du brugte GET skal du hente dem rigtig nok med QueryString ;o)

Så ret
SQL = "SELECT * FROM medlem2002 WHERE id = " & Request.QueryString("id")
Set rs = Conn.Execute(SQL)

Til

SQL = "SELECT * FROM medlem2002 WHERE id = " & Request.Form("id")
Set rs = Conn.Execute(SQL)

//>Rune
Avatar billede dj-sejler Praktikant
12. december 2002 - 18:49 #5
-->Rune

Så får jeg denne samme fejl:

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

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "id =".

/best/login/medlem/ret-form.asp, linje 23
Avatar billede hossein Nybegynder
12. december 2002 - 22:01 #6
har du en Form på liste.asp?
Avatar billede medions Nybegynder
13. december 2002 - 07:36 #7
Når du bruger Request.Form() ???

//>Rune
Avatar billede dj-sejler Praktikant
13. december 2002 - 08:33 #8
--> Rune
Ja - når jeg bruger Request.Form("id")

--> hossein
nej jeg har ikke form på liste.asp!
Avatar billede medions Nybegynder
13. december 2002 - 14:13 #9
<--- liste.asp --->

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../../log/bandholm.mdb")
Conn.Open DSN

strSQL = "Select * From medlem2002 Order by efternavn"
Set rs = Conn.Execute(strSQL)

Do
  ' Personens navn
  strNavn = rs("Fornavn") & " " & rs("Efternavn")

  ' lav et link til person.asp med Id-værdien i URL
  strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn & "</a>"

  ' lav et link til person.asp med Id-værdien i URL
  strLink2 = "<a href='ret-form.asp?id=" & rs("Id") & "'><font color='blue'>Ret</font></a>"

  ' Liste med links
  Response.Write "<li>" & strLink & " " & strLink2 & "</li>"

  rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>


<--- ret-form.asp --->

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../../../log/bandholm.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL


SQL = "SELECT * FROM medlem2002 WHERE id = " & Request.QueryString("id")
Set rs = Conn.Execute(SQL)

   
        strID = rs("ID")
        strType = rs("Type")
        strFornavn = rs("Fornavn")
        strEfternavn = rs("Efternavn")
        strGade = rs("Gade")
        strNr = rs("Nr")
        strPost = rs("Post")
        strBy = rs("By")
        strLand = rs("Land")
        strBaad = rs("Baad")
%>
<!--#include file="function.asp"-->

<html>
<title>Medlemskardotek</title>
<head>

<!--#include virtual="/style.css"-->

</head>
<body>
<dl>
<table cellpadding=2 cellspacing=2 border=1 bordercolor=black class=format width="500">

  <tr>
    <td width="100%" colspan="3">
    <br>

<form method="POST" action="ret-form.asp?id=<%=strid%>">
  <div align="center">
    <center>
    <table border="0" width="75%" cellspacing="0" cellpadding="0" height="223">
      <tr>
        <td width="100%" height="25"><%=strError%>
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Medlemstype:</font><br>
    <select name="Type" tabindex="1" value="<%=strType%>">
    <option value="Familie">Familie</option>
    <option value="Aktiv">Aktiv</option>
    <option value="Passiv">Passiv</option>
    <option value="Æresmedlem">Æresmedlem</option>
    </select>
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Fornavn:</font><br>
          <input type="text" name="Fornavn" size="28" class="box" tabindex="2" value="<%=strFornavn%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Efternavn:</font><br>
          <input type="text" name="Efternavn" size="28" class="box" tabindex="4" value="<%=strEfternavn%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Gadenavn:</font><br>
          <input type="text" name="Gade" size="28" class="box" tabindex="5" value="<%=strGade%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Husnummer:</font><br>
          <input type="text" name="Nr" size="28" class="box" tabindex="6" value="<%=strNr%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Postnummer:</font><br>
          <input type="text" name="Post" size="28" class="box" tabindex="7" value="<%=strPost%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">By:</font><br>
          <input type="text" name="By" size="28" class="box" tabindex="8" value="<%=strBy%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Land:</font><br>
          <input type="text" name="Land" size="28" class="box" tabindex="9" value="<%=strLand%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="25"><font face="Verdana" size="2">Bådnavn:</font><br>
          <input type="text" name="Baad" size="28" class="box" tabindex="10" value="<%=strBaad%>">
        </td>
      </tr>
      <tr>
        <td width="100%" height="46"><br>
          <input type="submit" value="  Send  " name="update" class="box" tabindex="11">&nbsp;&nbsp;
          <input type="button" value="  Fortryd  " name="Annuller" class="box" onClick="java script:location.href='medlem.asp'" tabindex="12">
        </td>
      </tr>
    </table>
    </center>
  </div>
</form>
<br></td></tr>
</table>
<%
SQL = "UPDATE medlem2002 SET Type = '" & RemoveHTML(Request.Form("Type")) & "', Fornavn = '" & RemoveHTML(Request.Form("Fornavn")) & "', Gade = '" & RemoveHTML(Request.Form("Gade")) & "', Nr = '" & RemoveHTML(Request.Form("Nr")) & "', Post = '" & RemoveHTML(Request.Form("Post")) & "', By = '" & RemoveHTML(Request.Form("By")) & "', Land = '" & RemoveHTML(Request.Form("Land")) & "', Baad = '" & RemoveHTML(Request.Form("Baad")) & "' WHERE id = " & Request.Form("id")
%>

Prøv nu!

//>Rune
Avatar billede dj-sejler Praktikant
14. december 2002 - 18:26 #10
--> Rune

Nu får jeg ingen fejlmeldinger mere men den opdaterer ikke :(
Avatar billede hossein Nybegynder
15. december 2002 - 00:06 #11
Hvis du få ikke fejlmelding, så prøv det:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3      '3 = adModeReadWrite
...
Avatar billede dj-sejler Praktikant
15. december 2002 - 00:44 #12
--> hossein

Det virker helle ikke... men jeg får stadig ikke nogen fejlmeling
Avatar billede hossein Nybegynder
15. december 2002 - 10:52 #13
hvor ligger din database? ligger din projekt på din egen server? Hvis det er din egen server, åben database ---> åben en af tabellerne, så må vi se om du få en fejlmedling?
Når du submiter kommer næste side frem eller er det bare en hvid side?
Avatar billede hossein Nybegynder
15. december 2002 - 10:57 #14
ups, jeg mener åben db + åben en tabel også submit en sag.
Avatar billede dj-sejler Praktikant
15. december 2002 - 11:35 #15
Der skette det samme som før!

Alle felterne er udfyldt med dataen fra Databasen.
Hvis jeg så ændre et felts værdi og submitter, kommer den gamle værdi bare frem igen! :(
Avatar billede hossein Nybegynder
15. december 2002 - 12:38 #16
jeg kan ikke se hvor du opdatere værdierne. Rune har lavet en Update sætning i bunden men hvor er det på siden du "Execute"er den? jeg kender ikke Rune's fremgangs måde?!
Avatar billede dj-sejler Praktikant
15. december 2002 - 12:40 #17
Nu er jeg jo ikke ligefre´m haj til asp kan du prøve at være lidt mere pædagoisk? :D
Avatar billede dj-sejler Praktikant
15. december 2002 - 12:52 #18
Jeg ved måske hvad du mener:

fra starten af filen (ret-form.asp)kommer:

<%
if not Session("godkendt12")= "godkendt" then
    Response.Clear
    Response.Redirect("../vsLOgin.asp")
    Response.End
End IF


' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")

DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../../../log/bandholm.mdb")
Conn.Mode = 1      '3 = adModeReadWrite
Conn.Open DSN



' Hent fra databasen afhængig af værdien id fra URL


SQL = "SELECT * FROM medlem2002 WHERE id = " & Request.QueryString("id")
Set rs = Conn.Execute(SQL)

   
        strID = rs("ID")
        strType = rs("Type")
        strFornavn = rs("Fornavn")
        strEfternavn = rs("Efternavn")
        strGade = rs("Gade")
        strNr = rs("Nr")
        strPost = rs("Post")
        strBy = rs("By")
        strLand = rs("Land")
        strBaad = rs("Baad")
%>

Og så kommer formen og head, html og så videre...

og så kommer udaten i bunden ja:
<%
SQL = "UPDATE medlem2002 SET Type = 'Request.Form('Type')', Fornavn = 'Request.Form('Fornavn')', Gade = 'Request.Form('Gade')', Nr = 'Request.Form('Nr')', Post = 'Request.Form('Post')', By = 'Request.Form('By')', Land = 'Request.Form('Land')', Baad = 'Request.Form('Baad')' WHERE id = " & Request.Form("id")
%>
Avatar billede hossein Nybegynder
15. december 2002 - 12:53 #19
jeg opdatere altid på den måde:

<%
navn = request.form("Navn")
...

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ("database.mdb")
strSQL = "Select * From Skema Where id=1" 'din select sætning og ikke update
Set rst = Server.CreateObject("ADODB.Recordset")
rst.Open strSQL, Conn, 3, 3 (3 fordi ellers er den readonly)
rst.addnew (resten skal være din egen)
rst.fields("navn") = navn
rst.fields("tlfnr") = tlfnr
rst.update

rst.Close
conn.close
%>
Avatar billede dj-sejler Praktikant
15. december 2002 - 13:23 #20
--> hossein

Er det sådan??

<%

Type = Request.form("type")
Fornavn = Request.form("Fornavn")
Efternavn = Request.form("Efternavn")
Gade = Request.form("gade")
Nr = Request.form("nr")
Post = Request.form("post")
By = Request.form("By")
Land = Request.form("Land")
Baad = Request.form("Baad")


' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "provider=Microsoft.Jet.Oledb.4.0;Data Source=" & sever.MapPath(bandholm.mdb2)

strSQL = "SELECT * FROM medlem2002 WHERE id = " & Request.QueryString("id")

Set rs = Server.CreateObject("Adobe.Recordset")
rs.open strSQL, 3, 3

rs.addnew
rs.fields("Type") = type
rs.fields("Fornavn") = Fornavn
rs.fields("Efternavn") = Efternavn
rs.fields("Gade") = Gade
rs.fields("Nr") = Nr
rs.fields("Post") = Post
rs.fields("By") = By
rs.fields("Land") = Land
rs.fields("Baad") = Baad
rs.update

rs.Close
Conn.Close


%>

Så får jeg denne fejlmelding:

Type = Request.form("type")
Avatar billede dj-sejler Praktikant
15. december 2002 - 15:10 #21
Det er selvfølge denne fejlmelding!

Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a0400'

En sætning var ventet

/best/login/medlem/ret-form.asp, linje 14

Type = Request.form("type")
^
Avatar billede hossein Nybegynder
16. december 2002 - 21:21 #22
Det er ikke derfor. Det kan være at du kører med en gamel version af "vbscript scripting engine", du kan downlode den nye version herfra:
http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/733/msdncompositedoc.xml

du kan også læse om det: http://www.ambercat.com/helpdesk/support/issue2_513.htm
Avatar billede medions Nybegynder
09. februar 2003 - 22:57 #23
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