jhaustein
Goto Top

Wenn query leer ist - dann

Hallo Gemeinschaft,

ich möchte gerne abfragen, ob die query kein Inhalt hat

Set DB = CurrentDb
    strSQL = "SELECT * FROM AbfrageEigentuemer"  

also wenn strSQL is empty dann möchte ich zu einem anderen Schritt im code springen

könnt ihr mir dabei bitte helfen

Content-Key: 2433943712

Url: https://administrator.de/contentid/2433943712

Printed on: July 27, 2024 at 12:07 o'clock

Mitglied: 1915348599
Solution 1915348599 Apr 07, 2022 updated at 08:57:05 (UTC)
Goto Top
Dim rec As Recordset
Set rec = CurrentDb.OpenRecordset("SELECT * FROM AbfrageEigentuemer")  
if rec.RecordCount = 0 then
   ' do whatever you want ... reading the docs would be a good idea  
End if
https://docs.microsoft.com/de-de/office/client-developer/access/desktop- ...

Oder wenn du keine Datensätze von der Abfrage brauchst geht es auch direkt mit Dlookup
If IsNull(DLookup("[ID]", "AbfrageEigentümer")) Then  
   ' keine Einträge  
End If
Member: ukulele-7
Solution ukulele-7 Apr 07, 2022 at 08:43:55 (UTC)
Goto Top
Also wenn die Abfrage keine Treffer liefert dann ist strSQL NULL. Je nach Ausgangssprache deines Codes musst du halt auf NULL prüfen.

In reinem SQL würde deine Abfrage schon sehr wahrscheinlich einen Fehler liefern, da SELECT * natürlich mehrere Spalten und Zeilen ausgeben kann, keine Ahnung was für eine Variable strSQL ist.
Member: jhaustein
jhaustein Apr 07, 2022 at 12:14:09 (UTC)
Goto Top
du hattest recht - mit * geht es nicht - habe mit einem Feldnamen gemacht
Member: ukulele-7
ukulele-7 Apr 07, 2022 at 12:22:48 (UTC)
Goto Top
Zitat von @jhaustein:

du hattest recht - mit * geht es nicht - habe mit einem Feldnamen gemacht

Hast du auch geprüft was passiert wenn
SELECT Feldname FROM AbfrageEigentuemer
mehr als eine Zeile liefert? Wenn ich in SQL mehr als einen Wert aus dem Select bekomme knallts beim SET. Du könntest das umgehen in dem du
SELECT TOP 1 Feldname FROM AbfrageEigentuemer
verwendest, das wäre auch performanter wenn es nur um eine Prüfung auf Existenz von Werten geht.