Hallo Frank,
> 
> executeQuery liefert ein ResultSet, also eine Menge von Zeilen. Diese
> Menge kann leer sein, das Objekt, das sie repräsentiert, ist es aber
> nicht. Deswegen schlägt "NOT isNull(Abfrageergebnis)" immer zu.

Das war die Erklärung, die mir zum Verständnis schließlich so weit geholfen 
hat, dass ich das erstellte Makro jetzt beruhigt weitergeben kann.
> 
> Wenn Du wissen möchtest, ob die Ergebnismenge leer ist, tut es wohl ein
> einfaches
> 
>         Dim bHatMindestensEinenDatensatz As Boolean
>         bHatMindestensEinenDatensatz = Abfrageergebnis.next
> 
> , denn per definitionem steht ein ResultSet immer *vor* dem ersten
> Datensatz, so dass das *erste* daran gerufene "next" auf den ersten
> Datensatz positioniert. Wenn es keinen solchen gibt, bewegst Du Dich
> unmitelbar von "vor dem ersten" (abfragbar mit isBeforeFirst,
> ansteuerbar mit "beforeFirst") zu "nach dem letzten"
> (isAfterLast/afterLast).
> 
> Wie alle Positionierungsmethoden liefert "next" TRUE, wenn Du auf einem
> "echten" Datensatz stehst, und FALSE, wenn Du auf einem der beiden
> "virtuellen" Datensätze "before first"/"after last" stehst.

Da ich von der Logik her mittlerweile sowieso 3 Fälle unterscheiden musste, 
habe ich den obigen Zugriff erst einmal nicht weiter verfolgt, aber den ganzen 
Thread mit seinen Anregungen erst einmal in meinem Dauerverzeichnis OpenOffice 
abgelegt.
Die 3 Fälle unterscheide ich durch eine zweite Abfrage mit "CALL IDENTITY()". 
So ermittle ich, ob ich gerade einen alten oder neuen Datensatz bearbeitet 
habe.

Danke an alle für die vielen Anregungen in diesem Thread.

Gruß

Robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an