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-ID: 2433943712

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

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

1915348599
Lösung 1915348599 07.04.2022 aktualisiert um 10:57:05 Uhr
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
ukulele-7
Lösung ukulele-7 07.04.2022 um 10:43:55 Uhr
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.
jhaustein
jhaustein 07.04.2022 um 14:14:09 Uhr
Goto Top
du hattest recht - mit * geht es nicht - habe mit einem Feldnamen gemacht
ukulele-7
ukulele-7 07.04.2022 um 14:22:48 Uhr
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.