Hallo, erstmal Danke f�r Deine ausf�hrliche Anwort. Leider konnte ich Deine
Idee noch nicht probieren.
Auf jeden Fall ist Deine Vermutung mit der gleichen Benennung der Felder ist
richtig. Habe mir schon mal Gedanken �ber einen einfacheren Weg gemacht.
Benennung der Felder:
<input type="text" name="<%=recartikel("einzelvkdm")%>"
value="<%=recartikel("einzelvkdm")%>">
Allerdings bin ich mir unschl�ssig wie ich die Felder dann anspreche.
Ein Tip?
Gruss Petra
-----Urspr�ngliche Nachricht-----
Von: Hubert Daubmeier [mailto:[EMAIL PROTECTED]]
Gesendet: Samstag, 16. M�rz 2002 11:43
An: ASP Diskussionsliste fuer Anfaenger
Betreff: [aspdebeginners] RE: [aspdebeginners] update tabelle klappt
nicht wie gew�nscht
Das geht leider so nicht, wie Du das vorhast.
Wenn Du auf einer Seite mehrere Formularfelder mit gleichen Namen hast,
dann werden deren Inhalte als kommagetrennte Liste an den
Formularhandler �bergeben. Beispiel g�be es auf dem Formular nur das
<input type="text" name="einzelvkdm" ...
W�rde im Formularhandler etwa
Einzelvkdm = 47.11
ankommen.
Was Du offensichtlich hast sind mehrere Felder mit gleichem Namen
<input type="text" name="einzelvkdm" ...
<input type="text" name="einzelvkdm" ...
<input type="text" name="einzelvkdm" ...
Damit kommt im Formularhandler etwa sowas an
Einzelvkdm = 47.11, 48.12, 49.13
So und das zerhaut Dir Dein SQL. Du braucht
update stdBestArtikel set EinzelVKDM=47.11 GesamtVKDM=..
Du hast bzw. kriegst druch die Mehrfachfelder mit gleichem Name
update stdBestArtikel set EinzelVKDM=47.11, 48.12, 49.13
GesamtVKDM=...
Sprich die DB weiss nicht wass sie damit anfangen soll. Oder sollte man
eher sagen sei froh dass es die DB nichts wei� .. ;-)
Abhilfe ist eigentlich ganz simpel: Du willst Einzels�tze
aktualisieren. Umn also Einzeldaten zu kriegen schau dass die Feldnamen
eindeutig werden und keine doppelten mehr daher kommen. Eine
M�glichkeit w�re die Satz-ID in den Feldnamen mit einzuschmuggeln. Am
besten in alle. Etwa
<input type="text" name="einzelvkdm-123" ...
<input type="text" name="einzelvkdm-129" ...
<input type="text" name="einzelvkdm-300" ...
Die Formularbehandlung wird damit auch ein St�ck anders. Etwas aber
nicht viel komplizierter. Es ist aber einiges umzustellen. Sehe aber
spontan nicht, wie man da einfacher ans Ziel kommen k�nnte.
Angenommen alle Feldnamen enthalten die Satznummer. Und die Satznummer
ist mit Bindestrich abgetrennt.
1. Alle vorhandenen Ids rausfinden. K�nnte man ggf cleverer l�sen,
indem man sie im Formular getrennt irgendwo mitgibt.
For Each Field In Request.Form
' kommt - im Feldnamen vor
If Instr(Field, "-") > 0 Then
a = split(Field, "-")
' is was gscheits bei rausgekommen
if Ubound(a) = 1 Then
' nur hinzuf�gen, wenn noch nicht vorhanden
If Instr(AlleIDs, a(1) & ",") = 0 Then
AlleIDs = AlleIDs& a(1) & ","
End If
End If
End If
Next
' letztes Komma abschneiden
If Len(AlleIDs) > 1 Then AlleIDs= Left(AlleIDs, Len(AlleIDs)-1)
2. Jetzt die Datens�tze der Reihe nach abarbeiten. Da fehlt noch ein
bischen DB rel. Code. Aber das hast Du bestimmt im Griff.
ArrayID = Split(AlleIDs, ",")
For Each EinzelID in ArrayID
UpdateById EinzelID
Next
' Auslesen der Formularwerte mit Satznummer
Sub UpdateById(Satznummer)
sql = "update stdBestArtikel set "
sql = sql & "EinzelVKDM=" & Request("EinzelVKDM" & "-" & Satznummer)
& ", "
... und so fort
sql = sql & "where bestArtNr=" & Satznummer
recupdateartikel.open sql, con
End Sub
Sorry wenn es etwas l�nger geworden ist
--
Viele Gr��e
Hubert Daubmeier
-----Original Message-----
From: Petra Budde [mailto:[EMAIL PROTECTED]]
Sent: Friday, March 15, 2002 7:48 PM
To: ASP Diskussionsliste fuer Anfaenger
Subject: [aspdebeginners] update tabelle klappt nicht wie gew�nscht
Hallo,
auf einer Seite werden mir Artikel einer Bestellung angezeigt. Die
werden
f�r n�tige updates in Textfeldern ausgegeben. Das mache ich
folgenderma�en:
sql="select * from stdBestArtikel where BestellNr="&BestellNr
recartikel.open sql, con
While Not recartikel.EOF
sql = "update stdBestArtikel set "
sql = sql & "EinzelVKDM=" & EinzelVKDM & ", "
sql = sql & "GesamtVKDM=" & GesamtVKDM & ", "
sql = sql & "EinzelVKEuro=" & EinzelVKEuro & ", "
sql = sql & "GesamtVKEuro=" & GesamtVKEuro & ", "
sql = sql & "Menge="& Menge & ", "
sql = sql & "Attribut1id="& Attribut1id & ", "
sql = sql & "Attribut2id="& Attribut2id & ", "
sql = sql & "Status="& ArtikelStatus& ", "
sql = sql & "where bestArtNr=" & bestArtNR
response.write sql
recupdateartikel.open sql, con
recartikel.MoveNext
wend
recartikel.close
Mir wird folgendes Sql angezeigt:
update stdBestArtikel set EinzelVKDM=54.9, 14.9, GesamtVKDM=54.9, 29.8,
EinzelVKEuro=28.01, 7.6,GesamtVKEuro=28.01, 15.2,Menge=1, 2,
Attribut1id=78,
75, Attribut2id=-1, -1, Status=0, 5 where bestArtNr=8, 9
Mit der Fehlermeldung
[Microsoft][ODBC SQL Server Driver][SQL Server]Zeile 1: Falsche Syntax
in
der N�he von '14.9'.
Wird nur ein Artikel auf der Seite angezeigt, funktioniert das update.
Was
mache ich falsch??
Danke f�r Hilfe.
Gruss Petra
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp