Daten aus Access DB lesen und schreiben

aspnewbie

Grünschnabel
Hallo ihrs,
habe mal wieder ein Problem.

Ich möchte mir eine Access DB anzeigen lassen und über ASP neue Datensätze eintragen.
Das funktionier, das heisst ich kann die DB auslesen.
Mein Problem liegt beim Daten einfügen über ASP.
Hier mal die Scripte die ich verwende.

1. Eine ausgelagerte Verbingungsdatei für die DB.

-------- db.inc ---------

<%
Const dbTypeAccess = "Access"

Dim dbType
dbType = dbTypeAccess
'--------------------------------------------------------------

Public Function cbGetConnectionString()

SELECT Case dbType
Case dbTypeAccess: cbGetConnectionString = cbConnectAccess()
END SELECT
END FUNCTION

'--------------------------------------------------------------
Private Function cbConnectAccess()

Dim strProvider
strProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
Dim strDatabase
strDatabase = "DATA SOURCE=C:\..\data\bundesliga2003.mdb;"
Dim strComplete
strComplete = strProvider & strDatabase & strPassword

cbConnectAccess = strComplete

END FUNCTION
%>

So, ich möchte ne bundesliga seite erstellen, weil die so ziemlich viel beeinhaltet...aber egal.

Die Startseite

------- default.asp ----------

<!--#include file="db.inc" //-->
<%
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open cbGetConnectionString()

Dim sqlCommand
sqlCommand = "SELECT Verein, Spiele, S, U, N, Punkte FROM Tabelle ORDER BY Punkte DESC"

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open sqlCommand, objConn

Response.Write "<table border=""1""><tr>"
Response.Write "<th>Verein</th><th>Spiele</th><th>S</th><th>U</th><th>N</th><th>Punkte</th></tr>"

Do While Not objRS.EOF
Response.Write "<tr>"
Response.Write "<td>" & objRS.Fields("Verein") & "</td>"
Response.Write "<td>" & objRS.Fields("Spiele") & "</td>"
Response.Write "<td>" & objRS.Fields("S") & "</td>"
Response.Write "<td>" & objRS.Fields("U") & "</td>"
Response.Write "<td>" & objRS.Fields("N") & "</td>"
Response.Write "<td>" & objRS.Fields("Punkte") & "</td>"
objRS.MoveNext
Loop

Response.Write "</table>"


objRS.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing
%>

<html>
<body>

Mannschaft eintragen <a href="./form.asp">hier</a>

</body>
</html>


Wie gesagt, die Abfrage funktioniert und ich bekomme auch alles richtig angezeigt.
Jetzt kommen wir zum eintragen in die DB.

--------- form.asp -------------
ich weiß das diese datei keine asp seite sein muß...

<html>
<body>
<form action="eintragen.asp" method="post">
<table cellpadding="1" cellspacing="1" bgcolor="#990000">
<tr>
<th>Manschaft eintragen</th>
<tr>
<td>Vereinsname :</td>
<td><input type=text size=30 name="mannschaft"></td>
<tr>
</table>
<input type=submit value="Eintragen">
</body>
</html>

Dieses Formular übergibt den Wert "mannschaft" an das asp script "eintragen.asp".

----- eintragen.asp -----------

<!--#include file="db.inc" //-->
<%
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open cbGetConnectionString()

Dim sqlCommand
sqlCommand = "SELECT Verein FROM Tabelle"

Dim Verein
Verein = Request("mannschaft")

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open sqlCommand, objConn

if objRS.Supports(adAddNew) Then
objRS.AddNew

objRS.Fields("Verein") = "<%= verein %>"

objRS.Update
Response.Write "Eingetragen"
Else
Response.Write "Fehler"
End if

objRS.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing
%>


ok, in diesem Script passiert irgendwas was ihm ned schmeckt.
-> objRS.AddNew --> in dieser zeile sagt der IE das etwas falsch wäre

-> objRS.Fields("Verein") = "<%= verein %>" --> desweitern weiß ich nicht ob er diese angabe aktzeptiert. wie bekomme ich den wert vom formular hier rein ?

Auf jedenfall macht er garnix, kein eintrag in die DB.
hab ich vorher schon was vergessen oder falsc gemacht ?

:rolleyes: ich hoffe ihr könnt mir helfen

danke im voraus
 
Zuletzt bearbeitet:
Zurück