matz: Daten aus Formular in Acces-DB schreiben

Hallo, versuche Daten aus einem Formular auszulesen und in eine Access-DB zu schreiben. Verwende hierzu ASP.
Vorgehensweise:
In einer HTML-Seite ist ein Formular aufgebaut (mit Hilfe von FrontPage). Dieses Formular hat eine Form-POST-definition die auf eine daten.asp verweist.

In der ASP-Datein habe ich folgende Einträge stehen:

<% cnr = Request.QueryString("cnr")
 bem = Request.QueryString("bem")
%>
<%      Session.timeout = 2
 If IsObject(Session("dok2")) Then
     Set conn = Session("dok2")
 Else
     Set conn = Server.CreateObject("ADODB.Connection")
     conn.open "dok2","",""
     Set Session("dok2") = conn
 End If
%>
<%   SQL="INSERT INTO ltdaten (cnr,bem) VALUES cnr,bem"
        Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3
    conn.Execute SQL
    rs.update
%>

Was mach ich falsch ?
Gruß Matz

  1. Hallo Matz

    der Fehler liegt m.E. hier:

    Set rs = Server.CreateObject("ADODB.Recordset")
        rs.Open sql, conn, 3, 3
        conn.Execute SQL
        rs.update
    %>

    Du öffnest ein Recordset fürs Insert (ich bezweifle ob das überhaupt funktionieren kann),

    dann führst Du das Insert über die Execute der Connection aus (was O.K. ist)

    dann Updatest Du das Recordset (wieder schleierhaft).

    Beschränke Dich auf die Execute-Anweisung und vergiß die Recordset-Sachen.

    Gruß Ralf

    1. Hallo Ralf,

      du hattes recht mit deiner Info. Leider scheint weiterhin der Wurm drin zu sein. Jetzt gibt es ein Problem mit der Parameterübergabe. Vermutlich stimmt in auf der HTML-Seite was nicht, dass keine oder falsch definierte Parameter übergeben werden. Kann ich dass irgendwie testen ?

      HTM-Datei:
      <form method="POST" action="daten.asp" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1">
             <input type="text" name="cnr" size="4">
             <input type="text" name="bem" size="50">
             <input type="submit" value="Save" name="sichern">
             <input type="reset" value="Cancel" name="zurück">
      </form>

      ASP-Datei:
      <% cnr = Request.QueryString("cnr")
       bem = Request.QueryString("bem")
      %>
      <%      Session.timeout = 2
       If IsObject(Session("dok2")) Then
           Set conn = Session("dok2")
       Else
           Set conn = Server.CreateObject("ADODB.Connection")
           conn.open "dok2","",""
           Set Session("dok2") = conn
       End If
      %>
      <%   SQL="INSERT INTO ltdaten (cnr,bem) VALUES cnr,bem"
          conn.Execute SQL
      %>

      Gruß Matz

      1. Hallo Matz,

        ich bin zwar kein ASP-Profi (eher habe ich einigermaßen gute Kenntnisse in VB und VB-Script), habe mich vor langer Zeit jedoch etwas mit ASP beschäftigt und meine Unterlagen dazu aufgehoben.
        Dort steht, dass Request.Querystring nur Parameter auswertet, die in der URL hinter dem Fragezeichen angegeben wurden. Die Werte aus dem Formular würden auch dort erscheinen, wenn Du method="get" im Formulartag benutzen würdest.

        Wenn Du stattdessen die Funktion Request.Form benutzt, müsste es klappen

        Gruß Ralf