Hidden Feld Problem beim Ändern von Datensätzen

stud3

Aktives Mitglied
hallo,
hier bin ich wieder mit meinen Anfängerproblemen, dieses Mal ein Problem mit dem Ändern von Datensätzen, ich benutze 2 Funktionen: ShowChangeForm() zum Anzeigen des Formulars, und ChangeIt() zum Ändern der Werte in dem Formular.

In der Funktion ShowChangeForm() brauche ich 2 hidden Felder entsprechend der Primärschlüssel in der eingesetzten Tabelle: eins für RC_Nummer und eins für KundenID, ich habe folgendes geschrieben:

CODE
<form action="change2.asp" method="post">
<input type="hidden" id="form_action" name="form_action" value="chg_save">

<input type="hidden" id="RC_Nummer" name="RC_Nummer" value="<%Response.write(Request("RC_Nummer")) %>">
...
</form>



dadurch, dass KundenID durch eine Combobox dargestellt ist, weiß ich nicht wie man das als hidden darstellt (ist das klar?), deswegen meckert der Server und ich bekomme die folgende Fehlermeldung:

CODE
ADODB.Recordset Fehler "800a0bcd'

Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Der angeforderte Vorgang benötigt einen aktuellen Datensatz.

/change2.asp, line 351



wobei die Zeile 351 ist die Zeile:

CODE
objRS.Update



Mein Combobox sieht so aus:

CODE
<%

set rsKd = Conn.execute("select * from LU_Kunde")
%>

<select id="KundenID" name="KundenID" style="width:350px">
<% While not rsKd.eof
if rsKd("KundenID") = objRS("KundenID") then %>
<option SELECTED value="<%=rsKd("KundenID")%>"><%=rsKd("Kunde")%>
<% else %>
<option value="<%=rsKd("KundenID")%>"><%=rsKd("Kunde")%>
<% end if
rsKd.movenext

Wend %>



ich weiß, der Fehler liegt an den Versuch das <select>..</select> Feld als hidden darzustellen, nach Änderungen und Versuchen hatte ich einmal geschafft, beim Klicken auf den Button "Änderungen Speichern", dass mindestens die Hintergrundfarbe (hell gelb)angezeigt wird, aber auf dieser Seite war auch die schon oben genannten Fehlermeldung mit dabei.

Hätte jemand eine Idee, wie ich das lösen kann?, für Hilfe wäre ich dankbar.
 
Wenn die KundenID nur für den Server übergeben werden soll, und der Benutzer keinen Kunden aus einer Combobox auswählen muss, dann darf die KundenID nicht in einer Combobox stehen. Benutze dafür ein input-hidden gleich wie für die RC_Nummer.

Ein objRS.Update, das einen BOF/EOF-Fehler liefert, deutet auf ein fehlendes objRS.Edit resp. objRS.AddNew hin.

Griessli
Irene
 
hallo Irene,
ich habe schon ein input für die KundenID eingefügt:

CODE
<input type="hidden" id="KundenID" name="KundenID" value="<%Response.write(Request("KundenID")) %>">



aber ich bekomme die gleiche Fehlermeldung wie oben.

 
Das Feld hat ja, soweit ich den Code überblicke, nichts mit dem Ändern in der DB zu tun. Das objRS.Update schlägt fehl, weil es keinen zu bearbeitenden Datensatz gibt. Entweder das Recordset ist leer, oder der Cursor des RS steht vor dem ersten oder nach dem letzten Datensatz, oder es gab kein objRS.AddNew resp. objRS.Edit.

Um solche Fehler zu vermeiden, ändere ich Daten in ASP grundsätzlich immer über SQL-Statements und nicht über das Recordset-Objekt.

Griessli
Irene
 
Zurück
Oben