ASP-FastBoard - Demo/Support-Forum
Forum anmelden / register Board
SearchSearch CalendarCalendar GalleryGalleryAuction-PortalAuctions GlobalGlobal Top-ListTopMembersMembers StatisticsStats
get your RSS-Feed
Language/Sprache:  Admin  
 Login: ChatChat (0) new User-MapUser-Mapsend Passwordsend Password RegisterRegister

Forum Overview » Homepagetools - Support » ASP-FastBoard (deutsch) » einbauen von ADD und Update
Pages: (2) 1 [2] »
Registration necessaryRegistration necessary
einbauen von ADD und Update
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


Hallo,

die SQL-Anweisungen sind nicht ganz richtig.

fürs Löschen:
sSQL = "DELETE * FROM t_Musikvideos WHERE ID = "& id
Set oRS = oConn.Execute(sSQL)

fürs Einfügen:
Set oRs = oConn.Execute ("INSERT INTO t_musikvideos (Titel) VALUES ('Test')")

lg


Forum-Changelog || zu unseren Angeboten
12/18/2006 11:32:13 PM    
Guestno Access no Access no Access 
Group: blocked




Posts: 1877
IP-Address: saved


Super danke das mit dem löschen klappt jetzt aber mit dem verändern kenn ich micht aus:

Hier der Fehler

Fehlertyp:
Microsoft JET Database Engine (0x80004005)
Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut.
/daba12_1.asp, line 78


hier dazu der Codeauschnitt

If request.querystring("action") = "edit" Then
id = request.querystring("id")
if IsNumeric(id) Then id = int(id) Else id = 0
Set oRs = oConn.Execute (" INSERT INTO t_musikvideos (Titel) VALUES ('Test') ")
response.write SQL
Set oRs = oConn.Execute (SQL)
End If


Danke für deine Hilfe

coffee


12/19/2006 11:27:23 AM 
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


Hallo,

die Spalte Titel ist "unique" bzw. ein Primärschlüssel. Das heißt, daß der jeweilige Wert nur 1x vorkommen darf.
Das kannst du in Access ändern. Einfach den Primärschlüssel löschen.

lg


Forum-Changelog || zu unseren Angeboten
12/19/2006 5:21:01 PM    
coffeeno Access no Access no Access 
Group: User
Level: Gelegenheitsposter


Posts: 14
Joined: 12/9/2006
IP-Address: saved
offline


nein leider gleicher fehler

ich weiß leider nicht wie ich das anstellen kann aber kann man nicht jeden datensatz mit einem formular verknüpfen wo man dann verschiedene sachen verändern kann.

Kann ich auch ein formular mit html erstellen?

Danke für deinen tollen SupportLächeln


12/20/2006 9:53:06 AM   
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


Kenne deine Datenbank leider nicht , deshalb kann ich dir nicht genauer sagen woran es liegt.

Formulare erstellst du immer mit HTML.
Formularfelder liest du in ASP mit request.form("name") aus.

lg



Forum-Changelog || zu unseren Angeboten
12/21/2006 8:01:40 PM    
coffeeno Access no Access no Access 
Group: User
Level: Gelegenheitsposter


Posts: 14
Joined: 12/9/2006
IP-Address: saved
offline


Okay Danke

Wie geht das genau mit request.form?

Die DB genauer beschrieben:
Name: Musikvideos
Tabelle: t_Musikvideos
Felder: ID, Titel

Hier mein HTML:

<HTML>
<HEAD>
<TITLE>Eingabeformular</TITLE>
</HEAD>

<BODY>
<H1><CENTER>Veränderung</CENTER></H1>

<FORM Action="/daba12_1.asp" Method="post">
<HR>
Veränderung der Daten:
<TABLE>
<TR>
<TD>ID:</TD>
<TD><INPUT TYPE="text" name="ID"></TD>
</TR>
<TR>
<TD>Titel:</TD>
<TD><INPUT TYPE="text" name="Title"></TD>
</TR>
</TABLE>
<HR>
<INPUT TYPE="submit" name="change" value="Datensatz change">
<INPUT TYPE="reset" value="Zurücksetzen">
</FORM>
</BODY>
</HTML>


Wie kann ich jetzt dieses HTML mit der ASP zusammenhängen, damit ich im HTML die Daten verändern kann

Hier nochmals das ASP:

<% Option explicit %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<%
Dim sConnectionString
Dim oConn
Dim sSQL
Dim sreplace
Dim oRS
Dim sColor
Dim id

set oConn = Server.CreateObject ("ADODB.Connection")
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath ("Musikvideos.mdb")
oConn.Open sConnectionString

sSQL="SELECT ID,Titel FROM t_Musikvideos"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL, oConn, 3, 3
%>
<table border="1" cellpadding="1" cellspacing="1" style="font-family:arial;font-size:10pt;">
<tr bgcolor="black" style="color:white;">
<td>ID</td>
<td>Titel_ALT</td>
<td>Titel_NEU</td>
</tr>
<%

sColor ="white"
Do While NOT oRS.EOF
If sColor = "silver" Then
sColor = "white"
Else
sColor = "silver"
End If

sreplace = oRS("Titel")
sreplace = Replace(sreplace, "_ok", "", 1, -1, vbTextCompare)
sreplace = UCase(Left(sreplace, 1)) & Mid(sreplace, 2, Len(sreplace)-1)
sreplace = Replace(sreplace, "_", " ")
%>
<tr bgcolor="<% =sColor %>">
<td><% =oRS("ID") %></td>
<td><% =oRS("Titel") %></td>
<td><% =sreplace %></td>
</tr>


<td><a href="?action=delete&id=<%=oRS("ID") %>">löschen</a></td>
<td><a href="?action=edit&id=<%=oRS("ID") %>">verändern</a></td>

<%
oRS.MoveNext

Loop


If request.querystring("action") = "delete" Then
id = request.querystring("id")
if IsNumeric(id) Then id = int(id) Else id = 0
sSQL = "DELETE * FROM t_Musikvideos WHERE ID = "& id
Set oRS = oConn.Execute(sSQL)
End If

If request.querystring("action") = "edit" Then
id = request.querystring("id")
if IsNumeric(id) Then id = int(id) Else id = 0
Set oRs = oConn.Execute (" INSERT INTO t_musikvideos (Titel) VALUES ('Test') ")
response.write SQL
Set oRs = oConn.Execute (SQL)
End If


%>

oRS.Close
set oRS = Nothing
oConn.Close
set oConn = Nothing
%>
</table>
<br>
<br>
</BODY>
</HTML>


Danke für deine Hilfe

lolipop 999


12/22/2006 2:23:17 PM   
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


Du mußt die Daten zuerst auslesen und dann in das Formular darstellen.

Datensatz auslesen:
"SELECT * FROM t_Musikvideos WHERE id = 123"

Formular:
<form action="/dabal2_1.asp" method="post">
<input type="text" name="id" value="<%= oRs("ID") %>">
<input type="text" name="titel" value="<%= oRs("Titel") %>">
<input type="hidden" name="action" value="edit">
</form>

Am Anfang die Abfrage für die Übermittelten Daten:
id = request.form("id")
titel = request.form("titel")

SQL:
"UPDATE t_Musikvideos SET Titel = '"& titel &"' WHERE ID = "& id

Schau dir mal ein paar andere Scripte an wie das genauer funktioniert.

lg


Forum-Changelog || zu unseren Angeboten
12/22/2006 7:11:18 PM    
coffeeno Access no Access no Access 
Group: User
Level: Gelegenheitsposter


Posts: 14
Joined: 12/9/2006
IP-Address: saved
offline


hier mein ansatz:

<HTML>
<HEAD>
<TITLE>Eingabeformular</TITLE>
</HEAD>

<BODY>
<H1><CENTER>Veränderung</CENTER></H1>
<%
Dim sConnectionString
Dim oConn
Dim sSQL
Dim sreplace
Dim oRS
Dim sColor
Dim id

set oConn = Server.CreateObject ("ADODB.Connection")
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath ("Musikvideos.mdb")
oConn.Open sConnectionString

sSQL="SELECT ID,Titel FROM t_Musikvideos WHERE ID = " & Request.Form("ID")"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL, oConn, 3, 3
%>

<%
if rs.Supports (adUpdate) Then
rs.Fields("Titel") = Request.Form("Titel")
rs.Update
Else
Response.Write("<h2>Es ist ein Fehler aufgetreten !</h2>")
End if
%>

<FORM Action="/daba12_1.asp" Method="post">
<HR>
Veränderung der Daten:
<TABLE>
<TR>
<TD>ID:</TD>
<TD><INPUT TYPE="text" name="ID"></TD>
</TR>
<TR>
<TD>Titel:</TD>
<TD><INPUT TYPE="text" name="Title"></TD>
</TR>
</TABLE>
<HR>
<INPUT TYPE="submit" name="change" value="Datensatz change">
<INPUT TYPE="reset" value="Zurücksetzen">
</FORM>
</BODY>
</HTML>


hier mein Fragenstellung genauer:

Ich möchte in liste.asp einen Link in jeder Zeile der dort auszugebenden Tabelle und dort wiederum auf die ID eines Datensatzes einbinden, der dann auf edit.asp verweist. Als Parameter möchte ich die ID des Datensatzes übergeben. In edit.asp habe ich dann ein Formular, welches die Werte des Datensatzes anzeigt. Diese sollen änderbar sein. Nach abschicken der neuen Werte im Formular sollen die neuen Werte in die Datenbank eingetragen werden und mit einer meldung bestätigt werden.

Vielleicht ist es jetzt ein bisschen klarer

Danke für deine Hilfe

coffee



12/23/2006 9:50:38 AM   
coffeeno Access no Access no Access 
Group: User
Level: Gelegenheitsposter


Posts: 14
Joined: 12/9/2006
IP-Address: saved
offline


also ich habe jetzt ein bisschen nachgelesen und ich weiß jetzt wie ich jede ID mit dem Formular zum verändern, verlinken kann.

Hier der Code:

<% Option explicit %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<%
Dim sConnectionString
Dim oConn
Dim sSQL
Dim sreplace
Dim oRS
Dim sColor
Dim id

set oConn = Server.CreateObject ("ADODB.Connection")
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath ("Musikvideos.mdb")
oConn.Open sConnectionString

sSQL="SELECT ID,Titel FROM t_Musikvideos"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL, oConn, 3, 3
%>
<table border="1" cellpadding="1" cellspacing="1" style="font-family:arial;font-size:10pt;">
<tr bgcolor="black" style="color:white;">
<td>ID</td>
<td>Titel_ALT</td>
<td>Titel_NEU</td>
</tr>
<%

sColor ="white"
Do While NOT oRS.EOF
If sColor = "silver" Then
sColor = "white"
Else
sColor = "silver"
End If

sreplace = oRS("Titel")
sreplace = Replace(sreplace, "_ok", "", 1, -1, vbTextCompare)
sreplace = UCase(Left(sreplace, 1)) & Mid(sreplace, 2, Len(sreplace)-1)
sreplace = Replace(sreplace, "_", " ")
%>
<tr bgcolor="<% =sColor %>">
<td><% =oRS("ID") %></td>
<td><% =oRS("Titel") %></td>
<td><% =sreplace %></td>
</tr>


<td><a href="?action=delete&id=<%=oRS("ID") %>">löschen</a></td>
<td><a href="formular2.asp?ID=<%=oRS("ID") %>">verändern</a></td>

<%
oRS.MoveNext

Loop


If request.querystring("action") = "delete" Then
id = request.querystring("id")
if IsNumeric(id) Then id = int(id) Else id = 0
sSQL = "DELETE * FROM t_Musikvideos WHERE ID = "& id
Set oRS = oConn.Execute(sSQL)
End If
%>

oRS.Close
set oRS = Nothing
oConn.Close
set oConn = Nothing
%>
</table>
<br>
<br>
</BODY>
</HTML>


Nur leider bekomme ich beim öffenen des Formulars immer diese Fehlermeldung:

Fehlertyp:
Kompilierungsfehler in Microsoft VBScript (0x800A0409)
Nicht abgeschlossene Zeichenfolgenkonstante
/formular2.asp, Zeile 21, Spalte 75
sSQL="SELECT ID,Titel FROM t_Musikvideos WHERE ID = " & Request.Form("ID")"


Hier der code des Formulars:

<HTML>
<HEAD>
<TITLE>Eingabeformular</TITLE>
</HEAD>

<BODY>
<H1><CENTER>Veränderung</CENTER></H1>
<%
Dim sConnectionString
Dim oConn
Dim sSQL
Dim sreplace
Dim oRS
Dim sColor
Dim id

set oConn = Server.CreateObject ("ADODB.Connection")
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath ("Musikvideos.mdb")
oConn.Open sConnectionString

sSQL="SELECT ID,Titel FROM t_Musikvideos WHERE ID = " & Request.Form("ID")"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL, oConn, 3, 3
%>

<%
if rs.Supports (adUpdate) Then
rs.Fields("Titel") = Request.Form("Titel")
rs.Update
Else
Response.Write("<h2>Es ist ein Fehler aufgetreten !</h2>")
End if
%>

<FORM Action="/daba12_1.asp" Method="post">
<HR>
Veränderung der Daten:
<TABLE>
<TR>
<TD>ID:</TD>
<TD><INPUT TYPE="text" name="ID"></TD>
</TR>
<TR>
<TD>Titel:</TD>
<TD><INPUT TYPE="text" name="Title"></TD>
</TR>
</TABLE>
<HR>
<INPUT TYPE="submit" name="change" value="Datensatz change">
<INPUT TYPE="reset" value="Zurücksetzen">
</FORM>
</BODY>
</HTML>


Es sollten eigentlich ID und Titel in di vorgegebenen Felder von der liste.asp an das formular.asp übergeben werden, damit sie nachher bearbeiten kann.

Danke für die Hilfe

coffee


12/26/2006 12:48:27 PM   
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


Daten kannst du immer entweder mit GET oder POST übergeben.

GET:
<a href="list.asp?id=<%= RS("ID") %>">Link</a>

POST:
<form>
<input type="text" value="<%= RS("ID") %>">
</form>

Viel Spaß beim Lernen!



Forum-Changelog || zu unseren Angeboten
12/27/2006 2:54:28 PM    
coffeeno Access no Access no Access 
Group: User
Level: Gelegenheitsposter


Posts: 14
Joined: 12/9/2006
IP-Address: saved
offline


ja danke für die Hilfe aber es kommt folgender fehler

Fehlertyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfehler (fehlender Operator) in Abfrageausdruck 'ID ='.
/formular2.asp, line 23


Hier nochmals der code der liste:

<HTML>
<HEAD>
<TITLE>Eingabeformular</TITLE>
</HEAD>

<BODY>
<H1><CENTER>Veränderung</CENTER></H1>
<%
Dim sConnectionString
Dim oConn
Dim sSQL
Dim sreplace
Dim oRS
Dim sColor
Dim id

set oConn = Server.CreateObject ("ADODB.Connection")
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath ("Musikvideos.mdb")
oConn.Open sConnectionString

sSQL="SELECT ID,Titel FROM t_Musikvideos WHERE ID = " & Request.Form("ID")
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL, oConn, 3, 3
%>

<%
if rs.Supports (adUpdate) Then
rs.Fields("Titel") = Request.Form("Titel")
rs.Update
Else
Response.Write("<h2>Es ist ein Fehler aufgetreten !</h2>")
End if
%>

<FORM Action="/daba12_1.asp" Method="post">
<HR>
Veränderung der Daten:
<TABLE>
<TR>
<TD>ID:</TD>
<TD><INPUT TYPE="text" name="ID"></TD>
</TR>
<TR>
<TD>Titel:</TD>
<TD><INPUT TYPE="text" name="Title"></TD>
</TR>
</TABLE>
<HR>
<INPUT TYPE="submit" name="change" value="Datensatz change">
<INPUT TYPE="reset" value="Zurücksetzen">
</FORM>
</BODY>
</HTML>


Danke für die Hilfe




12/27/2006 6:14:05 PM   
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


In deinem Fall natürlich oRS statt RS.

lg


Forum-Changelog || zu unseren Angeboten
12/28/2006 3:58:05 AM    
coffeeno Access no Access no Access 
Group: User
Level: Gelegenheitsposter


Posts: 14
Joined: 12/9/2006
IP-Address: saved
offline


wo genau


12/29/2006 5:03:09 PM   
Cyberlordno Access no Access no Access 
Group: Administrator
Level: heavy Spammer


Posts: 3610
Joined: 3/11/2004
IP-Address: saved
offline


Suche nach RS und ersetze es mit oRS. ;)


Forum-Changelog || zu unseren Angeboten
12/30/2006 1:56:17 AM    
Registration necessaryRegistration necessary
Pages: (2) 1 [2] »
all Times are GMT +1:00
Thread-Info
AccessModerators
Reading: all
Writing: all
Group: general
Cyberlord
Forum Overview » Homepagetools - Support » ASP-FastBoard (deutsch) » einbauen von ADD und Update

.: Script-Time: 0.230 || SQL-Queries: 6 || Active-Users: 2,392 :.
Powered by ASP-FastBoard HE v0.8, hosted by cyberlord.at