Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Access 2003 - leere Abfrageergebnisse abfangen





Frage

Hallo, ich habe eine Abfrage erstellt, deren Ergebnis in einem Formular ausgegeben werden soll. Nun ist es aber leider so, dass bei leeren Abfrageergebnissen (das Suchkriterium kann nicht gefunden werden) nichtmal das Formular richtig geladen wird. Es fehlen dann alle Felder und auch der Schließen-Button fehlt. Wie kann ich also die leeren Ergebnisse abfangen? Danke für eure Hlfe

Antwort 1 von firefox

Prüfe vor/beim öffnen des Formulars ob Daten vorhanden sind - wenn nicht gibt eine Meldung aus und schließe das Formular wieder.

Antwort 2 von sferres

Wie mach ich das am besten?

Antwort 3 von firefox

So hatte etwas viel um die Ohren, deshalb erst jetzt eine Antwort:

- Wie genau öffnest du denn das Formular? Setzt du die RecordSource per VBA, oder die WhereBegingung beim öffnen, oder Filter??

- Normale Access Umgebung, oder ODBC, oder Client Server?

Da ich nicht weiß wie weit deine VBA Kentnisse reichen hatte ich das nur mal grob angedacht. Für obigen Fall müsstest du also die zugrunde liegende Abfrage einmal per VBA ausführen und schauen ob es ein Ergebnis gibt.

Wenn die Abfrage aber sehr rechenintensiv ist und lange dauert, ist diese Lösung nicht sinnvoll.

Antwort 4 von sferres

Hallo,

ich öffne das Formular über ein Makro nach erfolgter Abfrage mit einer Bedingung, die über eine Where abgefragt wird. Des Weiteren handelt es sich um eine normale Access-Umgebung

Antwort 5 von firefox

Ich würde dir empfehlen von Makros weg zu gehen. Makros sind eigentlich bei AC2003 nur noch aus Kompalitätsgründen dabei.

Gerade wegen solcher Probleme wie bei dir beschrieben ist ein Makro ungebügend, da man zu wenig eingreifen kann.

Weniger aufwendig ist die Access "Unart" eine Abfrage zu erstellen, die den einzuschränkenden Wert selbst aus einem Form heraus liest.
Also in der Abfrage Feld=Forms!meinForm!Textfeld z.b.

Persönlich würde ich wohl dem Ergenisform einfach die Wherebedingung übergeben.

z.b. so:

Sub meinButton_click()
 docmd.openform "frmErgebnis",  WhereCondition:="meinfeld=" & Textfeld
end sub