10 Anwenderfreundlich mit Makros

Größe: px
Ab Seite anzeigen:

Download "10 Anwenderfreundlich mit Makros"

Transkript

1 10 Anwenderfreundlich mit Makros»Ogni bel gioco dura poco. Alles Schöne hat einmal ein Ende.«Dies ist das letzte Kapitel, das sich schwerpunktmäßig mit Makros beschäftigt. Aber keine Angst, VBA ist ja auch noch da! Die Casa-Maria-Datenbank soll so gestaltet werden, dass auch Mitarbeiter damit zurecht kommen, die sich bisher nicht mit Access beschäftigt haben und weder wissen, was eine Abfrage, noch was ein Berichtskopf ist. Ein Mittel, um die Handhabung für die Mitarbeiter einfacher zu machen, ist es, Informationen in Dialogfeldern abzufragen, in denen dann nur mit ja oder nein geantwortet zu werden braucht. In diesem Kapitel zeige ich Ihnen, wie Sie Meldungen erstellen, die die Schaltflächen JA und NEIN enthalten. Außerdem zeige ich Ihnen, wie Sie ein Makro automatisch beim Starten von Access ausführen lassen, wie Sie beim Start von Access ein Formular anzeigen lassen, das dem Anwender auch ohne Datenbankfenster den Aufruf weiterer Formulare zu den einzelnen Arbeitsbereichen ermöglicht, wie Sie das Datenbankfenster ausblenden, wie Sie weitere Start-Einstellungen vornehmen und z.b. den Eintrag in der Titelleiste ändern und wie Sie eine eigene Symbolleiste erstellen Meldung mit Auswahlmöglichkeit Wie Sie am Ende des letzten Kapitels gesehen haben, gibt es Gelegenheiten, bei der Sie mit der Makroaktion MELDUNG nicht weiterkommen. Im letzten Kapitel fehlte die Möglichkeit, den Ausdruck des im Berichtskopf enthaltenen Deckblattes abzubrechen. Besser 124 Kapitel 10: Anwenderfreundlich mit Makros

2 wäre eine Meldung, in der Sie sich gegen einen Ausdruck des Deckblattes entscheiden könnten. Bild 10.1: So müsste die Meldung aussehen Eine solche Meldung müsste dann nach Klick auf NEIN die Makroaktion ABBRECHENEREIGNIS ausführen. Aber wie soll es möglich sein, die ABBRECHENEREIGNIS-Aktion nur unter der Bedingung auszuführen, dass in einer Meldung auf NEIN geklickt wurde? Um den gewünschten Effekt zu erreichen, müssen Sie eine Bedingung definieren, die unterschiedliche Werte annimmt, je nachdem, auf welche Schaltfläche in einer Meldung geklickt wurde. Um eine Meldung wie in Bild 10.1 zu erzeugen, ersetzen Sie in dem im letzten Kapitel erstellten Makro mcrdruckenberichtskopf die Makroaktion MELDUNG durch die ABBRECHENEREIGNIS-Aktion, tragen Sie in der Bedingungsspalte folgenden Ausdruck ein: Meldung ("Soll das Deckblatt gedruckt werden?";4;"achtung")=7 und speichern und schließen Sie das Makro. Bild 10.2: Das geänderte Makro mcrdruckenberichtskopf Da das Makro mcrdruckenberichtskopf an das Ereignis BEIM DRU- CKEN des Berichtskopfes gebunden ist, erscheint die Meldung, wenn Sie den Bericht ausdrucken. Das Ganze funktioniert übrigens auch, wenn Sie den Bericht in der Seitenvorschau anzeigen lassen, denn auch in diesem Fall tritt das Ereignis BEIM DRUCKEN ein Meldung mit Auswahlmöglichkeit 125

3 Funktion Meldung statt Makroaktion Meldung Es gibt also zwei unterschiedliche Möglichkeiten, eine Meldung anzuzeigen: Für eine einfache Meldung, die nur mit OK bestätigt werden kann, tragen Sie die Makroaktion MELDUNG ein. Wollen Sie eine Meldung mit mehreren Schaltflächen anzeigen, tragen Sie einen Ausdruck mit der Funktion Meldung in die Bedingungsspalte ein. Wie funktioniert die Funktion Meldung? Die Funktion Meldung hat den folgenden Aufbau: Meldung (<Meldungstext>;<Typ>;<Titeltext>). Bei dem im obigen Beispiel eingetragenen Typ 4 werden die Schaltflächen JA und NEIN angezeigt. Wenn Sie stattdessen für Typ 1 eine 1 eintragen, werden die Schaltflächen OK und ABBRECHEN angezeigt. Wenn die Schaltfläche NEIN gedrückt wird, liefert die Funktion Meldung den Wert 7 zurück. Damit die Makroaktion ABBRE- CHENEREIGNIS beim Klicken auf NEIN ausgeführt wird, musste der Ausdruck für die Bedingung im obigen Beispiel deshalb um =7 ergänzt werden. Ein Klick auf JA gibt den Wert 6 zurück. Wenn Sie Typ 1 gewählt haben, erhalten Sie für OK den Rückwert 1 und für ABBRECHEN den Wert 2 oder Grundeinstellungen für die Datenbank Sie haben die Möglichkeit, nach dem Öffnen einer Datenbank automatisch ein Makro zu starten oder ein Formular aufzurufen. Im Folgenden beschreibe ich Ihnen diese und weitere Möglichkeiten, das Aussehen und die Funktionen Ihrer Datenbank anwenderfreundlicher zu gestalten. 126 Kapitel 10: Anwenderfreundlich mit Makros

4 AutoExec-Makro Soll ein Makro automatisch beim Laden der Datenbank ausgeführt werden, müssen Sie ihm lediglich den Namen AutoExec geben. Beispielmakro zeigt Anzahl der belegten Appartements Als Beispiel für ein AutoExec-Makro habe ich ein Makro erstellt, das eine Meldung mit der Zahl der am aktuellen Datum gebuchten Appartements anzeigt. Wenn Sie die erforderlichen Schritte nachvollziehen wollen, erstellen Sie zunächst eine Abfrage, der Sie den Namen qryappartementsheutebelegt geben. Unter der Bedingung, dass das heutige Datum größer oder gleich dem Anreisedatum und kleiner oder gleich dem Abreisedatum ist, wird die Anzahl der Appartementnummern ausgegeben (siehe folgendes Bild): Bild 10.3: Abfrage als Grundlage für Beispielmakro Bild 10.4: Mögliches Abfrageergebnis Geben Sie einem neuen Makro den Namen AutoExec und fügen Sie als Aktion eine MELDUNG hinzu. Als Aktionsargument tragen Sie im Feld MELDUNG den folgenden Ausdruck ein: ="Zur Zeit belegte Appartements: " & Dom- Wert("[AnzahlvonAppartementnummer]";"qryAppartements- HeuteBelegt") Grundeinstellungen für die Datenbank 127

5 Das Gleichheitszeichen bewirkt, dass der Ausdruck nicht direkt als Meldungstext angezeigt wird, sondern die einzelnen Teile zuerst zusammengesetzt werden. Mit der DomWert-Funktion (die Sie ja bereits in Kapitel 8 eingesetzt haben) wird der Wert aus dem Ergebnisfeld [ANZAHLVONAPPARTEMENTS] aus der Abfrage qryappartementsheutebelegt in den Meldungstext übernommen. Bild 10.5: Für Meldungstext wurde längerer Ausdruck eingetragen Speichern Sie das neue Makro und schließen Sie die Datenbank. Wenn Sie die Datenbank erneut öffnen, wird das AutoExec-Makro automatisch gestartet und die Meldung mit der Anzahl der belegten Appartements erscheint auf dem Bildschirm (siehe Bild 10.11) Start-Einstellungen Mit dem Menübefehl EXTRAS START rufen Sie das Dialogfeld START auf. Hier haben Sie eine Reihe von Einstellungsmöglichkeiten. Bild 10.6: Hier können Sie die START-Eigenschaften ändern 128 Kapitel 10: Anwenderfreundlich mit Makros

6 Anwendungstitel Im Feld ANWENDUNGSTITEL können Sie die Bezeichnung eintragen, die statt MICROSOFT ACCESS in der Titelleiste erscheinen soll. Bei mir steht dort jetzt Casa Maria (siehe Bild 10.11). Datenbankfenster und Statusleiste ausblenden Wenn Sie das Häkchen vor DATENBANKFENSTER ANZEIGEN entfernen, wird das Datenbankfenster ausgeblendet. In der geöffneten Datenbank können Sie das Datenbankfenster mit wieder einblenden. Wenn Sie nicht möchten, dass ein ausgeblendetes Datenbankfenster auf diese Weise eingeblendet werden kann, entfernen Sie zusätzlich das Häkchen vor ACCESS-SPEZIALTASTEN VERWENDEN. Zum Ausblenden der Statuszeile am unteren Rand des Programmfensters entfernen Sie einfach das Häkchen vor STATUSLEISTE ANZEIGEN. Formular/Seite anzeigen Wollen Sie, dass direkt nach dem Start ein Formular geöffnet wird, können Sie dieses im Feld FORMULAR/SEITE ANZEIGEN auswählen. AutoExec-Makro startet erst nach Öffnen des Startformulars Wenn Sie sowohl ein Startformular als auch ein AutoExec-Makro einsetzen, wird zuerst das Startformular geöffnet und danach das AutoExec-Makro ausgeführt. Im nächsten Abschnitt zeige ich Ihnen, wie Sie ein Startformular erstellen, das mehrere Schaltflächen enthält, mit denen zu den einzelnen Formularen gewechselt werden kann Grundeinstellungen für die Datenbank 129

7 10.3 Ungebundenes Formular als Startformular Das Formular, auf dem die Schaltflächen gesammelt werden, bezieht sich nicht auf eine Tabelle oder Abfrage. Es hat keine Datenbasis. Ein solches Formular wird als ungebundenes Formular bezeichnet. Zum Erstellen eines ungebundenen Formulars klicken Sie einfach im Datenbankfenster auf den Eintrag ERSTELLT EIN FORMULAR IN DER ENTWURFSANSICHT. Bild 10.7: Ein ungebundenes Formular Dass es sich um ein ungebundenes Formular handelt, erkennen Sie daran, dass im Eigenschaftenfenster des Formulars im Feld DATENHERKUNFT nichts eingetragen ist. Setzen Sie die Eigenschaften DATENSATZMARKIERER, NAVIGATI- ONSSCHALTFLÄCHEN und TRENNLINIEN auf NEIN, denn diese Eigenschaften brauchen Sie bei einem ungebundenen Formular nicht. Auch die BILDLAUFLEISTEN können Sie ausschalten. Indem Sie die Eigenschaft MIT SYSTEMMENÜFELD auf NEIN setzen, enfernen Sie die Fensterschaltflächen, die normalerweise rechts oben im Fenster angezeigt werden. Als RAHMENART wählen Sie DIALOG, um das Formular mit einer für Dialogfelder typischen dünnen, nicht veränderbaren Linie zu umranden. Als BESCHRIFTUNG tragen Sie Casa Maria ein. 130 Kapitel 10: Anwenderfreundlich mit Makros

8 Formular automatisch zentrieren Wenn Sie die Eigenschaft AUTOMATISCH ZENTRIEREN auf JA stellen, wird das Formular beim Öffnen automatisch in der Mitte des Bildschirms platziert. Besondere Bedeutung der Eigenschaft GEBUNDEN Die Eigenschaft GEBUNDEN, die Sie auf dem Registerblatt ALLE des Eigenschaftenfensters finden, hat nichts damit zu tun, ob das Formular an eine Tabelle oder Abfrage gebunden ist. Ist bei GE- BUNDEN JA eingetragen, können Sie zu keinem anderen Formular wechseln. Lassen Sie für das Startformular NEIN eingetragen. Wie in Kapitel 5 beschrieben, erstellen Sie nun für die Formulare frmadressendeutschland, frmbuchungen und frmappartements jeweils ein Makro, das in einer ÖFFNENFORMULAR-Aktion das entsprechende Formular aufruft. Dann ziehen Sie die Makros aus dem Datenbankfenster in das in der Entwurfsansicht geöffnete neue Formular, um auf diese Weise die Schaltflächen zu erstellen. Die Bezeichnung der Schaltflächen ändern Sie zu Appartements bzw. Adressen. Auf entsprechende Weise fügen Sie eine Schaltfläche hinzu, die den Bericht rptappartements ausdruckt Ungebundenes Formular als Startformular 131

9 Für Schaltflächen Quick-Infos vergeben In den Eigenschaften der Befehlsschaltflächen können Sie durch einen Eintrag im Feld STEUERELEMENT TIP-TEXT den Text vergeben, der angezeigt wird, wenn Sie mit der Maus über die Schaltfläche fahren. Dann fügen Sie aus der Toolbox mit Unterstützung des Assistenten eine Befehlsschaltfläche zum Beenden von Access hinzu. Dabei wählen Sie im Assistenten ANWENDUNG BEENDEN. Bild 10.8: Befehlsschaltfläche hinzufügen: Schritt 1 Wählen Sie in den folgenden Schritten das Symbol mit der Tür und klicken Sie auf WEITER. Bild 10.9: Befehlsschaltfläche hinzufügen: Schritt Kapitel 10: Anwenderfreundlich mit Makros

10 Im dritten Schritt vergeben Sie den Namen cmdschließen und klicken dann auf FERTIG STELLEN. Ändern Sie die Namen der anderen zuvor hinzugefügten Schaltflächen von den automatisch vergebenen Bezeichnungen (BEFEHL8 etc.) zu passenden Namen mit dem Präfix cmd. Wenn Sie möchten, fügen Sie noch eine Grafik ein. Bild 10.10: Grafik hinzufügen Auch mit Klick auf Grafik lassen sich Makros ausführen Auch in den Eigenschaften einer Grafik finden Sie das BEIM KLI- CKEN-Ereignis, an das Sie ein Makro binden können. Bei mir wird das Makro AutoExec beim Klicken auf die Grafik aufgerufen. Als STEUERELEMENT TIP-TEXT habe ich eingetragen: Anzahl der zur Zeit gebuchten Appartements anzeigen. Schließen Sie das Formular und geben Sie ihm den Namen frmstart. Jetzt müssen Sie das Formular nur noch im Dialogfeld START im Feld FORMULAR/SEITE ANZEIGEN auswählen, damit es automatisch beim nächsten Start angezeigt wird Ungebundenes Formular als Startformular 133

11 Bild 10.11: Startformular und Meldung durch AutoExec-Makro 10.4 Eigene Symbolleisten Sie haben auch die Möglichkeit, Ihre Formulare über einen Eintrag in einer eigenen Symbolleiste zu öffnen. Dazu öffnen Sie das Dialogfeld ANPASSEN mit dem Menübefehl ANSICHT SYMBOLLEISTEN ANPASSEN. Im linken Bereich können Sie Symbolleisten zur Anzeige markieren oder ausblenden. Bild 10.12: Eigene Symbolleiste definieren 134 Kapitel 10: Anwenderfreundlich mit Makros

12 Klicken Sie auf dem Registerblatt SYMBOLLEISTEN auf NEU und geben Sie der neuen Symbolleiste einen Namen. Wechseln Sie zum Registerblatt BEFEHLE und klicken Sie dort auf ALLE FORMULARE. Ziehen Sie eines Ihrer im rechten Bereich aufgeführten Formulare in die noch winzig kleine Symbolleiste. Klicken Sie mit rechts auf das eingetragene Symbol, wählen Sie im Kontextmenü die Option SCHALTFLÄCHENSYMBOL MIT TEXT und ändern Sie den im Kontextmenü eingetragenen Namen der Schaltfläche. Bild 10.13: Schaltflächen mit Text in neuer Symbolleiste erstellen Nach diesem Muster fügen Sie weitere Formulare (oder auch Makros zum Ausdrucken eines Berichts etc.) hinzu. Am Ende schließen Sie das Dialogfeld ANPASSEN. Jetzt haben Sie eine eigene Symbolleiste erstellt, die einen direkten Zugriff auf die gewünschten Objekte ermöglicht. Wenn Sie möchten, blenden Sie die anderen Symbolleisten aus. Mit den beschriebenen Änderungen haben Sie Ihre Datenbank nun ein ganzes Stück freundlicher, vielleicht sogar anwenderfreundlicher gemacht! Bild 10.14: Die eigene Symbolleiste ist fertig 10.4 Eigene Symbolleisten 135