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