Daten aus Formular in Acces-DB schreiben
matz
- asp.net
0 Ralf Walther0 matz
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
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
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
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