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.
- 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
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:
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

