Rs.moveLast läuft auf Fehler, wie RecordCount?

Hallo,
um den RecordCount zu bekommen will ich folgende m.E. gütligte Befehle ausführen:

rs.moveFirst
rs.moveLast

Leider bekomme ich folgende Fehlermeldung, sobald ich das moveLast aufrufe:

Microsoft OLE DB Provider for SQL Server- Fehler ‚80040e24‘
Das Rowset kann nicht rückwärts abgerufen werden.

Wer weiss rat???

THX, Z.

Ich helf’ Dir - und wenn es das letzte ist…
… was ich tue :wink: Kann ja wohl nicht sein, dass ein Tipp nach dem anderen fehlschlaegt. Also: Auf ein Neues:

Das Problem hatte ich auch schon mal, und ich meine mich zu erinnern, in irgend einem DB-Seminar mal was von „Forward“ deklarierten Recordsets gehört zu haben… Egal, ich hab’ ein einfaches Workaround gefunden:

rsRecordCount = conn.execute ("SELECT Count(einFeld) AS ergebnis FROM eineTabelle WHERE wasAuchImmer")
recordcount = CInt (rsRecordCount.fields("ergebnis"))

T.

… was ich tue :wink:

Das nenne ich mal Aufopferung ;o)))

rsRecordCount = conn.execute („SELECT Count(einFeld) AS
ergebnis FROM eineTabelle WHERE wasAuchImmer“)
recordcount = CInt (rsRecordCount.fields(„ergebnis“))

Diese Möglichkeit mit „select Count(1)…“ kenne ich
zwar auch, aber ich möchte keinen unnötigen select in die DB schiessen aus Performancegründen.
Ich arbeite auf DB Ebene mit ASP nur mit SPs zusammen, von daher möchte ich jezt keinen einzelnes SELECT abschießen, verzeih mir :smile:

Ich habe es jetzt so gelöst, eine Variable zählt bei jedem rs.movenext einen hoch und zum Schluss setze ich den Platzhalter weiter oben mit ‚innerText‘ mit dem Ergebnis neu. Nicht schön, aber es klappt.
Vielen Dank trotzdem…

Z.

Wichtig hierbei ist der Cursortyp.
Folgendes sollte funktionieren:

rec.Open sql, connection, adOpoenKeyset, adLockReadOnly

if not rec.EOF then
rec.MoveLast
rec.MoveFirst
end if

rec.Close
set rec = nothing