Hallo,
ich habe eine Routine, in der ich Daten aus einer Tabelle lesen möchte und dann anzeigen möchte.
Das ist Problem ust es aber, daß ich nicht weiß, ob ein Datensatz gefunden wird oder nicht. Das Teilprogramm sieht wie folgt aus:
Datenbankverbindung …
…
rstein.Open „select b_name from benutzer where b_name = '“ & bn.value & „’“, …
Dann frage ich nach:
if rstein.recorscount > 1 then
…
else
…
end if
Aber rstein.recordset liefert immer den Wert -1. Was muß ich hier abfragen, um zu wissen, ob meine Select-Anweisung mind. einen Datensatz geliefert hat oder nicht?
Hallo Rezaei,
auch auf die Gefahr hin, Dich zu langweilen.
Bevor Du die Recordcounts abfragst, schreibe ein .movelast
Dazu der entsprechende Abschnitt aus der MSDN:
Bemerkungen
Mit der RecordCount-Eigenschaft können Sie herausfinden, auf wie
viele Datensätze in einem Recordset- oder TableDef-Objekt
zugegriffen wurde. Die RecordCount-Eigenschaft zeigt erst an,
wie viele Datensätze in einem Recordset-Objekt vom Typ Dynaset,
Vorwärts oder Snapshot enthalten sind, nachdem auf alle Datensätze
zugegriffen wurde.
… und genau das erreichst Du, indem Du den Zeiger auf den letzten Datensatz stellst.
Hallo Rainer,
danke für schnelle Antwort, aber das mit MoveLast hatte ich auch noch vor meiner If-Anweisung.
Wenn mind. ein Datensatz gefunden wird, funktioniert, aber wenn keine Datensätze in der Tabelle gefunden werden, bekam ich die folgende Fehlermeldung:
Laufzeitfehler 3021
Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Der angefordete Vorgang benötigt einen aktuellen Datensatz.
Habe aber den Grund gefunden. Für alle , die die Lösung wissen möchten:
Es hat dieser Eintrag gefehlt:
rstein.CursorLocation = adUseClint
Diese Zeile muß vor der Select-Anweisung stehen.
Gruß
Rezaei
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]