# Daten aus Access DB lesen und schreiben



## aspnewbie (4. August 2003)

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 ?

 ich hoffe ihr könnt mir helfen 

danke im voraus


----------

