EfkA: Warum kommt - Entweder BOF oder EOF ist True - beim 1.Aufruf?

Beitrag lesen

Hallo EfkA,

[...]

ich habe 2 Optionsfelder mit Begriffen zum auswählen.
Diese ausgewählten Begriffe werden dann in die Db eingetragen,
nachdem der submit-button geklickt wird.

Passiert die Eintragung auf derselben Seite die auch die Ausgabe erzeugt.

Ich erhalte dann aber immer zuerst auf der AusgabeSeite.asp:

ADODB.Field-Fehler '80020009'

Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht; die von der Anwendung angeforderte Operation benötigt einen aktuellen Datensatz.

Die Fehlermeldung besagt, dass kein Datensatz gefunden wurde.
Mit einer Prüfung lässt sich zumindest der Fehler abfangen:

<%
If Not rs.EOF Then
    ' --- Alles OK, mind. 1 Datensatz gefunden
    ...
    Else
        Response.Write "Kein Datensatz gefunden"
End if
%>

[...]

Nachdem ich die Seite aktualisere (mit F5 bei IE) erscheint die Auflistung der ausgewählten Begriffe. Warum aber erst beim 2.Mal?
[...]

Hierzu wäre der Quellcode der Seite(n) ganz nützlich.
Wenn der Eintrag noch nicht in die Datenbank eingetragen wurde
oder die Datenbank noch nicht aktualisiert wurde, kann obiger
Fehler auftreten. Bei grossen Datenbanken dauert es manchmal
etwas, bis der Satz vollständig in der DB steht, die Abfrage
aber schon ausgeführt wird und der Satz daher (noch) nicht
gefunden werden kann.

Tschau, Stefan

Danke erstmal, aber der Fehler bleibt leider bestehen:

Der Quelltext der Auswahlseite sieht so aus:

--------------------------------------------------------------------
<% Response.Buffer=false %>
<% Response.Expires=0 %>
<!-- #include file=".\handle.asp"-->
<!-- #include file=".\htdGrund.asp"-->
<!-- #include file="formularhandler-.asp" -->

<%  
set db2=OpenDB ("adressen")
set db=OpenDB ("Newsletter")
insertHEAD(true)

Hauptgruppe=request.Form("Hauptgruppe")  
if Hauptgruppe="" then Hauptgruppe=0   
Untergruppe=request.Form("Untergruppe")  
if Untergruppe="" then Untergruppe=0   
Firma=request.Form("Firma")   
Anschrift=request.Form("Anschrift")   
PLZ=request.Form("PLZ")   
Ort=request.Form("Ort")   
Telefon=request.Form("Telefon")  
Fax=request.Form("Fax")   
URL=request.Form("URL")   
Email=request.Form("Email")  

%>

<table width="750" border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td width="17%" valign="top">
<% linkeSpalte(true) %>
</TD>
<td valign="top" align="center">
<img src="images\herstellerliste-banner.gif"><br>
<table cellspacing="1" cellpadding="5" align="center" width="460">
<tr>
<td colspan="2">
<span class="impressum">Kategorisieren Sie Ihr Unternehmen mit Hilfe von Haupt- und Untergruppe.</span>
</td>
</tr>

<form action="herstellerkategorien.asp" name="auflisten" method="POST">
<input type="hidden" name="Firma" value="<%=Firma%>">
<input type="hidden" name="Anschrift" value="<%=Anschrift%>">
<input type="hidden" name="PLZ" value="<%=PLZ%>">
<input type="hidden" name="Ort" value="<%=Ort%>">
<input type="hidden" name="Telefon" value="<%=Telefon%>">
<input type="hidden" name="Fax" value="<%=Fax%>">
<input type="hidden" name="URL" value="<%=URL%>">
<input type="hidden" name="Email" value="<%=Email%>">
<tr>
<td colspan="2">
<span class="anmeldung">Hauptgruppe:</SPAN><br>

<% set rs=db.Execute("SELECT bezeichnung,hauptgruppe FROM gruppen WHERE untergruppe=0") %>
<select class="small" name="Hauptgruppe" size="1" onChange="document.auflisten.submit();">

<option value="0"> </option>
<% do while not rs.eof %>
<option value="<%=rs("hauptgruppe")%>" <%if rs("hauptgruppe")=Fix(hauptgruppe) then response.write("selected")%>><%=rs("bezeichnung")%></option>
<%
rs.MoveNext
loop
%>      
</select><br>

<span class="anmeldung">Untergruppe:</SPAN>
<br>

<% sql="SELECT bezeichnung,untergruppe FROM gruppen WHERE (untergruppe<>0) AND (hauptgruppe=" & hauptgruppe & ")" %>

<% set rs=db.Execute(sql) %>

<select class="small" name="Untergruppe" size="1" onChange="document.auflisten.submit();">
       ‚
<option value="0"></option>

<% do while not rs.eof %>
      
<option value="<%=rs("untergruppe")%>" <%if rs("untergruppe")=Fix(untergruppe) then response.write("selected")%>><%=rs("bezeichnung")%></option>
<%
rs.MoveNext
loop
%>      
</select>

Hier werden also die option felder mit Untergruppe ausgewählt.
------------------------------------------------------------------

------------------------------------------------------------------
Die Ausgabeseite sieht dann so aus:

<%  
Hauptgruppe=request.Form("Hauptgruppe")
Untergruppe=request.Form("Untergruppe")
Firma=request.Form("Firma")
Anschrift=request.Form("Anschrift")
PLZ=request.Form("PLZ")
Ort=request.Form("Ort")
Telefon=request.Form("Telefon")
Fax=request.Form("Fax")
URL=request.Form("URL")
Email=request.Form("Email")

set db=OpenDB ("newsletter")
set dbAdressen=OpenDB("Adressen")
    
insertHEAD(true)

set rsHG1=dbAdressen.Execute("SELECT Bezeichnung,Hauptgruppe,HG1 FROM Gruppen,Hersteller WHERE HG1 LIKE Hauptgruppe AND Email LIKE '" &Email& "'")
set rsUG1=dbAdressen.Execute("SELECT Bezeichnung,Untergruppe,UG1 FROM Gruppen,Hersteller WHERE HG1 LIKE Hauptgruppe AND UG1 LIKE Untergruppe AND Email LIKE '" &Email& "'")

dbAdressen.Execute("UPDATE Hersteller SET HG1='" & Hauptgruppe & "' WHERE Email='"&Email&"'")  
dbAdressen.Execute("UPDATE Hersteller SET UG1='" & Untergruppe & "' WHERE Email='"&Email&"'")  

%>

<table cellspacing="1" cellpadding="2" width="460">
     <tr>
      <td colspan="2">
      <% drawline %>
       <span class="impressum">Folgende Daten wurden für die Firma: </span><span class="black">
       <% response.write request.form("Firma")%></span><span class="impressum"> in unsere Herstellerliste aufgenommen:</span><br>
      </td>
     </tr>
...

...
</table>

<tr>
      <td colspan="2">
      <span class="pink">Hauptgruppe: </span><span class="news2"><% response.write rsHG1("Bezeichnung")%></span>
      <br><img src="images\ug.gif">
      <span class="pink">Untergruppe: </span><span class="news2"><% response.write rsUG1("Bezeichnung")%></span>
      </td><br>
     </tr>

<% set db=nothing %>
<% set dbAdressen=nothing %>

--------------------------------------------------------------------

Viel Text, aber das ist auch viel  Ballast drin. Der Hauptteil steht unten, wo die rs aufgerufen werden.

Danke für die Unterstützung

efKa