Button ausblenden wenn Abfr. keine Daten liefert

Hallo,

Ich schon wieder…!

Ist es möglich in Access 2000 folgendes zu realisieren:

In meinem Hauptmenü sind verschiedene selbstdef. Buttons jeweils mit einem Formular gekoppelt; das Ergebnis einer Abfrage wird dann in diesem Formular angezeigt. Wenn nun die jeweilige Abfrage KEINE Datensätze liefert, soll der zugehörige Button deaktiviert werden.

Wäre eine Erleichterung für die User, dann brauchen sie nämlich erst gar nicht draufzuklicken…

Wiederum recht vielen Dank für jegliche Tipps und Tricks!!!

Werner Weiss

Du disablest alle Buttons beim Laden des Formulars, oder mit der aktiviert Funktion und fragst dann bei Laden nach Not Zero(NZ)(also keinen Wert)

also zb so:

If NZ([combobox]) then
Button.enabled = true

Viel Spaß

WWW -> Werner-Weiss-Was!

Hi!

Mein Vorgänger hat schon recht aber macht es etwas umständlich ;o)) Schau dir mal das form_current-Ereignis an - das wird bei jedem neuem Datensatz aktiviert und dort kannst du entsprechende Einstellungen ovrnehmen!

Bernd

Wieder erstmal Danke schön für die Tipps!!!

Aber es scheint so, als ob ich mich etwas umständlich/falsch ausgedrückt habe… Also neuer Versuch:

Hauptmenü: enthält 4 Buttons, die jeweils ein Formular öffnen.
Diese 4 Formulare haben als Datenbasis jeweils eine Abfrage.

Jetzt kann es sein, daß z. B. eine oder auch mehrere der 4 Abfragen keine Datensätze liefert. Klickt ein User dann auf den Button, erhält er ein leeres Formular. Das soll aber verhindert werden, sprich: das Hauptmenü müsste (im Voraus) checken, ob die Abfrage leer sein wird und wenn ja, den Button zu diesem Formular deaktivieren.

Also ist die Funktion Form_Load schon zu spät, denn es soll ja VOR dem Laden des Formulars alles passieren!

Alles klar?!?!?!??!?!

WWN - Werner weiss nix

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Du kannst die Abfrage im OnClick-Ereignis des jeweiligen Buttons als Recordset öffnen und prüfen, ob es Datensätze enthält

Set db = CurrentDb
Set rst = db.OpenRecordset(—Abfragename—, dbOpenSnapshot)

If rst.BOF = True And EOF.EOF = True Then
MsgBox(„Keine Datensätze vorhanden!“)
Exit Sub
Else
—Formular öffnen—
EndIf

Zum Umgang mit recordsets kannst Du auch noch in die Hilfe schauen.

Ulrich

Lösung selbst gefunden: trotzdem DANKE an alle!!!
Nochmals Danke!!! Das Forum und die Leute darin sind klasse!!!

Habe das Problem etwas anders gelöst: die Buttons sind defaultmässig aktiviert, beim Draufklicken wird (Form_Load) geprüft, ob ein bestimmtes Feld Daten enthält. Wenn ja alles okey dokey, wenn nein kommt 'ne MessageBox hoch und nach Klick auf OK ist man wieder im Hauptmenü.

Habe das oben stehende Sub versucht, doch da muss ein Fehler drin sein. Access motzt 'rum, die genaue Meldung weiss ich nich mehr, ist aber auch egal, weil alles OK!

Werner

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]