Fehler "80040e21' beim Hinzufügen von Datensätzen

stud3

Aktives Mitglied
hallo,
hoffentlich gibt es jemand, der aus Erfahrung mir bei diesem Problem helfen kann.
Ich habe eine Eingabemaske für die Tabelle Production_Problem erstellt mit Eingabefelder:
RC_Nummer, KundenID und Dauer_Minuten. KundenID ist durch ein Combobox dargestellt mit Werten aus der Tabelle LU_Kunde.
Problem habe ich mit den Werten der Tabelle LU_Kunde, da diese vom Typ varchar 150 (SQL Server) sind, ich versuche durch folgendes Code das Combobox darszustellen:
CODE
<select name="Kunde" id="Kunde" style="width:350px">
<option>Bitte auswählen</option>
<%
 
Dim  strConn, SQLquery
Set rsKd = Server.CreateObject("ADODB.Recordset")

strConn = ""
SQLquery="Select * from LU_Kunde order by KundenID"
rsKd.Open SQLquery, strConn

While not rsKd.EOF
KundenID = rsKd("KundenID").Value
if CStr(KundenID) = CStr(Kunde) then
%><option value="<% Response.write rsKd("KundenID") %>" selected>
<% = rsKd("Kunde").Value %>
</option><%
Else
%><option value="<% Response.write rsKd("KundenID") %>">
<% = rsKd("Kunde").Value %>
</option><%
End if
rsKd.MoveNext
Wend
       
%>
</select>



Das Hinzufügen :

CODE
Dim SQL_test
Set objRS=Server.CreateObject("ADODB.Recordset")
   
SQL_test="SELECT COUNT(*) FROM Production_Problem_affected WHERE RC_Nummer='" & RC_Nummer & "'" & " " & "AND KundenID='" & KundenID & "'"
Set RS_test=Conn.Execute(SQL_test)
If RS_test(0)=0 Then     'wenn das nicht der Fall wäre:
objRS.Cursortype = 1  
objRS.Locktype = 3
SQLquery="SELECT RC_Nummer, KundenID, Dauer_Minuten, Anzahl_Enduser_intern, Anzahl_Enduser_extern from Production_Problem_affected"  
objRS.Open SQLquery, strConn
objRS.AddNew  

   
objRS("RC_Nummer") = RC_Nummer
objRS("KundenID") = Kunde
objRS("Dauer_Minuten") = Dauer_Minuten
objRS("Anzahl_Enduser_intern") = Anz_Enduser_int
objRS("Anzahl_Enduser_extern") = Anz_Enduser_ext
objRS.Update            
objRS.UpdateBatch
objRS.close
Set objRS=Nothing
Conn.Close


Ich bekomme die folgende Fehlemeldung:

CODE
Microsoft OLE DB Provider for SQL Server Fehler "80040e21'

Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet .

/_rootverzeichnis/change2.asp, line 168



Die Zeile 168 ist:

CODE
objRS("KundenID") = Kunde



Hätte jemand eine Idee wie ich das Problem lösen kann?, KundenID ist vom Typ int 4.
Für eine Hilfe wäre ich sehr dankbar
 
Wenn das

objRS("KundenID") = Kunde

einen Fehler verursacht, dann geh ich mal davon aus, dass der Datentyp nicht passt. Evtl. steht in der Variable "Kunde" kein Zahlenwert, sondern Text?

Weiter würde ich sagen, nach einem rs.Update darf nicht noch ein rs.UpdateBatch kommen. Ich bin aber nicht sicher, da ich in ASP nicht mit den Methoden des Recordsets arbeite, sondern über SQL.

Griessli
Irene
 
das stimmt, das erinner noch gut. mit dem update.batch gabt's überhaupt immer probleme. statt eines batch hatte ich immer jeden einzelnen datensatz in einer riesenschleife mit update gespeichert.
 
ok, danke für die Antwort bzw. Tips, dann versuche ich anders rum und zwar mit Insert, Update und Delete SQL Statements. Gruß.
 
Zurück
Oben