Access mit Makros automatisieren - HomePages für Einsteiger ...
Access mit Makros automatisieren - HomePages für Einsteiger ...
Access mit Makros automatisieren - HomePages für Einsteiger ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
29 KnowWare PLUS<br />
4,-<br />
Deutschland<br />
<strong>Access</strong> 97/2000 und 2002/XP<br />
<strong>Access</strong> <strong>mit</strong> <strong>Makros</strong><br />
<strong>Access</strong> <strong>mit</strong> <strong>Makros</strong><br />
<strong>automatisieren</strong><br />
www.KnowWare.de<br />
Deutschland: 4,- EUR Österreich: 4,60 EUR<br />
Schweiz: 8 SFR Luxemburg: 4,70 EUR Italien: 5,50 EUR<br />
Thomas Barkow<br />
4 *qlrujs#b-v--b* ÊÂËÙ
Acrobat Reader - Bestellung - Autoren gesucht<br />
Acrobat Reader: Wie ...<br />
F5/F6 öffnet/schließt die Ansicht Lesezeichen<br />
Strg+F sucht<br />
Im Menü Ansicht stellst du ein, wie die Datei gezeigt wird<br />
STRG+0 = Ganze Seite STRG+1 = Originalgrösse STRG+2 = Fensterbreite<br />
Im selben Menü kannst du folgendes einstellen:: Einzelne Seite,<br />
Fortlaufend oder Fortlaufend - Doppelseiten .. Probiere es aus, um<br />
die Unterschiede zu sehen.<br />
Navigation<br />
Pfeil Links/Rechts: eine Seite vor/zurück<br />
Alt+ Pfeil Links/Rechts: Wie im Browser: Vorwärts/Zurück<br />
Strg++ vergrößert und Strg+– verkleinert<br />
Bestellung und Vertrieb <strong>für</strong> den Buchhandel<br />
Bonner Pressevertrieb, Postfach 3920, D-49029 Osnabrück<br />
Tel.: +49 (0)541 33145-20<br />
Fax: +49 (0)541 33145-33<br />
bestellung@knowware.de<br />
www.knowware.de/bestellen<br />
Autoren gesucht<br />
Der KnowWare-Verlag sucht ständig neue Autoren. Hast du ein Thema,<br />
daß dir unter den Fingern brennt? - ein Thema, das du anderen Leuten<br />
leicht verständlich erklären kannst?<br />
Schicke uns einfach ein paar Beispielseiten und ein vorläufiges<br />
Inhaltsverzeichnis an folgende Adresse:<br />
lektorat@knowware.de<br />
Wir werden uns deinen Vorschlag ansehen und dir so schnell wie<br />
möglich eine Antwort senden.<br />
www.knowware.de
Inhalt<br />
3<br />
Hallo....................................................................4<br />
Wie ist das Heft aufgebaut? ..................................5<br />
Voraussetzungen <strong>für</strong> dieses Heft......................6<br />
Kenntnisse und Fähigkeiten..............................6<br />
Benötigte Hardware ..........................................6<br />
Software und Daten ..........................................7<br />
Beispieldatenbank vorbereiten..........................7<br />
Die Arbeit <strong>mit</strong> dem Makroeditor .....................9<br />
Der Makroeditor ...............................................9<br />
Das erste Makro..............................................10<br />
Das zweite Makro ...........................................12<br />
Aktionszeilen einfügen........................................12<br />
<strong>Makros</strong> strukturieren ...........................................12<br />
Aktionen kommentieren......................................12<br />
Spaltenbreite einstellen........................................12<br />
Aktionszeilen löschen .........................................12<br />
Aktionszeilen umstellen ......................................13<br />
Die gewünschte Aktion finden ............................13<br />
Argumente <strong>für</strong> Aktionen .....................................13<br />
<strong>Makros</strong> testen..................................................14<br />
Eine fehlgeschlagene Aktion...............................14<br />
Einzelschritt-Modus ............................................15<br />
Aktionen vorübergehend stillegen ......................16<br />
Makrogruppen.................................................16<br />
Namensspalte ......................................................17<br />
<strong>Makros</strong> einer Makrogruppe starten .....................17<br />
Namenskonventionen......................................18<br />
Namens- und Bedingungsspalte dauerhaft<br />
anzeigen........................................................18<br />
Das Manko an den <strong>Makros</strong> .............................18<br />
Programmstrukturen der <strong>Makros</strong>prache .....19<br />
Programmverzweigung durch Bedingungen...20<br />
Referenz auf ein Objekt, Teil 1 ...........................21<br />
Bedingungen wiederholen...................................21<br />
Verzweigung .......................................................21<br />
Unterprogramm: ein Makro ruft ein<br />
anderes auf ...................................................22<br />
Schleifen: Aktionen mehrfach ausführen........23<br />
Bildschirmflackern ausschalten...........................24<br />
<strong>Makros</strong> automatisch starten...........................26<br />
Direktstart .......................................................26<br />
Start durch ein Ereignis ..................................26<br />
Bearbeiten eines Wertes in einem Textfeld.........27<br />
Referenz auf ein Objekt, Teil 2 ...........................28<br />
Der Ausdrucks-Generator ...................................28<br />
Ereignis und Makro verknüpfen..........................30<br />
Alternative Ereignisse .........................................31<br />
Nach einem Datensatz suchen.........................32<br />
Schaltfläche und Makro verknüpfen ...................33<br />
Datensätze filtern ............................................34<br />
Die Struktur der Datenherkunft ...........................35<br />
Eine Parameterabfrage.........................................35<br />
Die Datenstruktur <strong>mit</strong> Filter ................................37<br />
Das Makro zum Filtern........................................37<br />
Den Filter testen ..................................................38<br />
Der Steuerelement-Assistent ...............................38<br />
Variablen durch die Hintertür .......................40<br />
Mit <strong>Makros</strong> Tabellen erzeugen............................40<br />
Ein Makro schreibt in die Tabelle .......................41<br />
Wert einer Eigenschaft setzen .............................42<br />
Laden einer Datenbank...................................43<br />
Das AutoExec-Makro .....................................45<br />
Das AutoExec-Makro umgehen......................45<br />
Das AutoKeys-Makro .....................................46<br />
Daten importieren und exportieren ...............47<br />
Daten per Email senden ..................................47<br />
Daten in eine Datei schreiben .........................48<br />
Im- und Export <strong>mit</strong> Transfer... ........................48<br />
Ein Arbeitsblatt transferieren...............................49<br />
Ein Datenbank-Objekt transferieren....................49<br />
Eine Textdatei transferieren.................................49<br />
Und TransferSQLDatenbank? .............................51<br />
Wohin kann <strong>Access</strong> exportieren? ........................52<br />
Alle Makroaktionen im Detail ........................53<br />
Liste der Makroaktionen ................................64<br />
Makroaktionen alphabetisch sortiert ...............64<br />
Makroaktionen gruppenweise sortiert.............66<br />
Tipps und Tricks..............................................68<br />
Meldungen erweitern ......................................68<br />
Typ steuert die Schaltflächen ..............................68<br />
Typ steuert das Symbol .......................................69<br />
Typ steuert die Voreinstellung ............................69<br />
Kombinationsfeld automatisch öffnen ............69<br />
Symbol „Makro ausführen“ ............................70<br />
Schneller arbeiten............................................71<br />
Ordnung im Datenbankfenster ........................71<br />
Tastenkombinationen......................................73<br />
Register.............................................................75<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
4<br />
Vorwort<br />
Hallo<br />
Arbeitest du <strong>mit</strong> Word, hast du <strong>mit</strong> einem Dokument<br />
oft gerade mal 15 oder 30 Minuten zu tun.<br />
Du schreibst vielleicht einen Brief, druckst und<br />
speicherst ihn, fertig. Nur selten verwendest du<br />
das Dokument noch ein weiteres Mal. Schon bei<br />
einer Excel-Kalkulation kann das ganz anders<br />
aussehen. Und <strong>mit</strong> einer <strong>Access</strong>-Datenbank<br />
arbeitet man immer wieder. Es gibt Anwender,<br />
die schalten an ihrem Arbeitsplatz morgens den<br />
PC ein, laden eine Datenbank in <strong>Access</strong>, arbeiten<br />
den ganzen Tag da<strong>mit</strong> und schalten die Kiste<br />
abends wieder aus – Tag <strong>für</strong> Tag.<br />
Diese Anwender kennen ihre Datenbank in- und<br />
auswendig, beherrschen sie wie im Schlaf – nur<br />
eines stört: oft schläft man wirklich fast dabei<br />
ein. Nicht etwa, weil <strong>Access</strong> so langsam wäre;<br />
aber um zu einem Ergebnis zu kommen ist es<br />
häufig ausgesprochen mühsam, immer wieder<br />
dieselbe lange Sequenz von Arbeitsschritten auszuführen.<br />
Wie schön wäre es, wenn das auf Knopfdruck<br />
automatisch passieren könnte!<br />
Bist du einer von diesen Anwendern? Wenn du<br />
täglich die gleichen Schritte häufig wiederholen<br />
musst, ist das zwar lästig, aber eigentlich kein<br />
Problem; es klappt bald ohne nachzudenken.<br />
Musst du aber regelmäßig jedes Quartal oder am<br />
Jahresende solche Prozeduren durchführen, dann<br />
wird das leicht zum Zitterspiel, weil du vergessen<br />
hast, wie es genau geht, oder weil du einfach in<br />
den Tiefen deines Schreibtisches den Zettel nicht<br />
mehr findest, wo alles notiert ist.<br />
<strong>Access</strong> enthält zwei Programmiersprachen, <strong>mit</strong><br />
denen man eine Prozedur von Arbeitsschritten<br />
<strong>automatisieren</strong> kann: VBA (Visual Basic for<br />
Applications) und eine einfache <strong>Makros</strong>prache.<br />
Um die geht es hier. VBA ist eine mächtige Sprache<br />
<strong>mit</strong> Hunderten von Befehlen und Parametern,<br />
und es kostet sicher einige Monate intensiver<br />
Arbeit, um sie einigermaßen zu erlernen.<br />
Anders sieht es <strong>mit</strong> der <strong>Makros</strong>prache aus; je<br />
nach <strong>Access</strong>-Version enthält sie etwa 50<br />
Aktionen. Da<strong>mit</strong> kann man sicher nicht alles das<br />
machen, was sich <strong>mit</strong> VBA realisieren lässt; aber<br />
<strong>für</strong> einen fortgeschrittenen <strong>Access</strong>-Anwender<br />
auch ohne bisherige Programmierkenntnisse<br />
bietet sie einiges.<br />
Um die <strong>Makros</strong>prache geht es also in diesem<br />
Heft. Du kannst es <strong>mit</strong> vielen Übungen leicht in<br />
drei Tagen durcharbeiten; es deckt die <strong>Makros</strong>prache<br />
in den zwei Versionen <strong>für</strong> <strong>Access</strong> 2000<br />
und 2002 ab.<br />
Hast du noch <strong>Access</strong> 97, wirst du sicher auch <strong>mit</strong><br />
dem Heft zurecht kommen, denn die Unterschiede<br />
sind gering.<br />
Willst du bei <strong>Access</strong> gerade erst einsteigen,<br />
solltest du dieses Heft lieber wieder weglegen –<br />
es setzt zu viel voraus und würde dich nur<br />
frustrieren. Fang an <strong>mit</strong> dem KnowWare-Heft<br />
172 „<strong>Access</strong> 2002 <strong>für</strong> <strong>Einsteiger</strong>“. Das kannst du<br />
auch verwenden, wenn du noch <strong>mit</strong> <strong>Access</strong> 97<br />
oder <strong>Access</strong> 2000 arbeitest. Es ist bereits im<br />
September 2002 erschienen und an vielen<br />
Kiosken nicht mehr erhältlich, aber auf Seite 2<br />
erfährst du, wie du es noch bestellen kannst.<br />
Informationen zu dem Heft (und eine Bestellmöglichkeit)<br />
gibt es auf www.knowware.de.<br />
Auch das KnowWare-Plus-Heft 18 „<strong>Access</strong> –<br />
Formulare und Berichte“ gehört eigentlich<br />
chronologisch vor dieses Heft. Es lässt sich <strong>für</strong><br />
alle <strong>Access</strong>-Versionen verwenden und stellt eine<br />
wichtige Voraussetzung <strong>für</strong> die Übungen dieses<br />
Heftes dar. Mehr dazu findest du unter<br />
www.knowware.de<br />
Zu meiner Person<br />
Meine Haupttätigkeit besteht eigentlich im<br />
Datenbank-Design und der Programmierung von<br />
Office-Applikationen <strong>mit</strong> VBA – nicht nur <strong>für</strong><br />
<strong>Access</strong>, sondern auch <strong>für</strong> Excel und Word; ich<br />
bin also Office-Praktiker. Aber als Entwickler<br />
läuft man immer Gefahr, sich von den Wünschen<br />
der Anwender zu weit zu entfernen.<br />
Als Autor sollte man <strong>für</strong> die Bedürfnisse der<br />
Leser ein offenes Ohr haben. Deshalb bin ich an<br />
Anregungen und Kritik besonders interessiert.<br />
Hier ist meine EMail-Adresse:<br />
xs<strong>Makros</strong>@OfficeTuning.de<br />
Bitte schreib mir, was dir gefallen hat, und vor<br />
allem, was nicht; mich interessiert, welche Aspekte<br />
fehlen und was vielleicht hätte entfallen können.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
Vorwort<br />
5<br />
Und wenn du meinst, ich sollte als nächstes unbedingt<br />
ein Heft zu einem anderen Office-Thema<br />
schreiben, lass es mich auch wissen.<br />
Was kannst du hier lernen?<br />
Als erstes findest du ein ziemlich langes Kapitel<br />
über die Arbeit <strong>mit</strong> dem Makroeditor. Hier geht<br />
es darum, wie man sich in diesem Editor bewegt<br />
und welche Hilfs<strong>mit</strong>tel und Eigenschaften er zur<br />
Verfügung stellt; außerdem erhältst du Hinweise<br />
zur Programmiertechnik und zum Testen.<br />
Im nächsten Abschnitt geht es um Programmstrukturen.<br />
Darunter versteht man z.B. die Möglichkeit,<br />
in einem Programm in verschiedenen<br />
Situationen unterschiedlich zu reagieren; gemeint<br />
sind bedingte Verzweigungen im Programm.<br />
Eine weitere Struktur besteht im Durchlaufen von<br />
Schleifen – in einer bestimmten Anzahl oder bis<br />
eine bestimmte Bedingung erfüllt ist.<br />
Das nächste Kapitel widmet sich dem Prinzip der<br />
Ereignissteuerung in Windows. Bewegst du die<br />
Maus oder klickst oder ziehst da<strong>mit</strong>, drückst du<br />
eine Taste ... alles wird von <strong>Access</strong> als ein sogenanntes<br />
Ereignis aufgefasst und interpretiert.<br />
Möglicherweise ist <strong>mit</strong> dem Ereignis eine bestimmte<br />
Reaktion verbunden; das ist dann nichts<br />
anderes als eine Programmroutine. Und genau<br />
das kannst du bald selbst realisieren.<br />
Nebenbei – oder ich sollte besser sagen: gleichzeitig<br />
– lernst du eine ganze Reihe von Befehlen<br />
kennen – oder Aktionen, wie sie in der <strong>Makros</strong>prache<br />
genannt werden. Es ist ein bisschen wie<br />
bei der Henne und dem Ei. Ohne Kenntnis der<br />
Befehle kannst du nicht lernen, wie man ein Programm<br />
schreibt; und ohne Programmierkenntnisse<br />
nutzt dir die reine Befehlssyntax nichts.<br />
Beim Erlernen der Technik streue ich also immer<br />
wieder kleine, möglichst allgemein gehaltene<br />
Beispiele ein. Am Anfang sprach ich von der<br />
„Automatisierung häufiger Arbeitsabläufe“. Da<br />
gibt es relativ einfache Dinge, die dazu beitragen<br />
können, dass Anwender, die sich <strong>mit</strong> dem Aufbau<br />
einer Datenbank nicht gut auskennen, trotzdem<br />
komfortabel und sicher arbeiten können. Gemeint<br />
ist die Erstellung eines Verwaltungsformulars,<br />
das quasi als Hauptmenü dient, und von dem aus<br />
sich alle anderen Formulare und Berichte aufrufen<br />
lassen.<br />
Ferner geht es darum, die Suchfunktion von<br />
<strong>Access</strong> zu verbessern. Was <strong>Access</strong> <strong>mit</strong> dem<br />
Symbol Suchen (oder dem Befehl BEARBEITEN|<br />
SUCHEN oder ALT-B S oder STRG-F) zur Verfügung<br />
stellt, ist leider wenig komfortabel. Wir<br />
schreiben ein Makro zum Suchen, und weil es<br />
dazu noch eine Variante gibt, auch eines zum<br />
Filtern.<br />
Die kleinen Randbemerkungen, wie soeben in<br />
dem Satz über die Suchfunktion, mag mancher als<br />
oberlehrerhaft empfinden. Ich halte es aber <strong>für</strong><br />
sinnvoll, <strong>mit</strong> den verschiedenen Alternativen und<br />
nützlichen Kleinigkeiten bei der Handhabung von<br />
<strong>Access</strong> vertraut zu sein.<br />
Ein häufiges Thema ist der Import und Export<br />
von Daten; sei ist zum Zwecke der Archivierung,<br />
der Datensicherung oder der Weiterverarbeitung<br />
in Word oder Excel. Oder du bekommst Daten<br />
von einer anderen Abteilung in einem anderen<br />
Format geliefert und benötigst sie in deiner<br />
Datenbank. Dazu werden wir ein paar kurze<br />
<strong>Makros</strong> verfassen.<br />
Wie ist das Heft aufgebaut?<br />
Die Frage ist immer: schreibe ich einen Kursus,<br />
den du kontinuierlich durcharbeiten musst, oder<br />
lässt sich das Heft auch als kleines Nachschlagewerk<br />
verwenden.<br />
Bei diesem Heft ist es ganz klar: Der größere<br />
erste Teil ab Seite 9 ist ein Kurs, der dir die<br />
Technik erklärt, wie man kleine Prozeduren <strong>mit</strong><br />
der <strong>Makros</strong>prache programmiert. Den musst du<br />
auf jeden Fall durcharbeiten. Der kleinere zweite<br />
Teil ab Seite 53 behandelt alle Makroaktionen im<br />
Einzelnen und systematisiert sie nach Themenbereichen.<br />
Klar ist, dass du alle Beispiele am Computer nachvollziehen<br />
solltest. Denke daran: du lernst auch<br />
<strong>mit</strong> den Fingern; deine Hand weiß, wo im Auto<br />
der Rückwärtsgang ist, so soll es sein.<br />
Hast du schon Vorkenntnisse und benötigst nur<br />
eine schnelle Information zu einem einzelnen<br />
Problem, sollte es dir <strong>mit</strong> Hilfe von Inhaltsverzeichnis<br />
und Register gelingen, den entsprechenden<br />
Abschnitt aufzusuchen. Ab Seite 64 findest<br />
du außerdem Listen, die alle Makroaktionen<br />
enthalten, – und zwar alphabetisch und nach<br />
zusammengehörigen Gruppen sortiert.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
6<br />
Voraussetzungen <strong>für</strong> dieses Heft<br />
Voraussetzungen <strong>für</strong> dieses Heft<br />
Kenntnisse und Fähigkeiten<br />
Grundlegend sind zumindest gewisse Kenntnisse<br />
darüber, wie und warum man Daten in einer relationalen<br />
Datenbank auf verschiedene Tabellen<br />
verteilt; hier machen Anfänger meist gravierende<br />
Fehler. Außerdem solltest du wissen, wie eine<br />
Tabelle angelegt wird; das ist nicht sonderlich<br />
schwer, dennoch sind ein paar wichtige Kleinigkeiten<br />
zu beachten. Und das Thema Abfragen ist<br />
natürlich ganz zentral, denn dies ist das wichtigste<br />
Werkzeug eines Datenbank-Systems; <strong>mit</strong><br />
Abfragen holst du aus den vielen Daten deiner<br />
Datenbank genau die Informationen heraus, die<br />
deine Fragen beantworten.<br />
All diese Themen habe ich in meinem Heft <strong>für</strong><br />
<strong>Einsteiger</strong> diskutiert (vgl. Seite 4). Gleichwertige<br />
Kenntnisse aus anderer Quelle sind natürlich<br />
auch in Ordnung.<br />
Beim Erstellen von Formularen und Berichten<br />
helfen dir die Assistenten von <strong>Access</strong>; darüber<br />
hinaus solltest du aber schon wissen, wie man<br />
Steuerelemente (Textfelder, Schaltflächen etc.) in<br />
ein Formular einbaut. Außerdem musst du dich<br />
<strong>mit</strong> den vielen konfigurierbaren Eigenschaften<br />
von Steuerelementen auskennen. Auch dazu gibt<br />
es von mir ein KnowWare-Heft „<strong>Access</strong> – Formulare<br />
und Berichte“, vgl. Seite 4, das dir alle<br />
Techniken näher bringt. Du musst dir nicht unbedingt<br />
die Hefte kaufen (obwohl man vier Euro<br />
kaum profitabler in Know How investieren<br />
kann), aber du solltest dir wenigstens auf der<br />
Homepage von www.knowware.de einen Überblick<br />
über den Inhalt verschaffen und überlegen,<br />
ob deine Kenntnisse den Stoff abdecken.<br />
Bevor du dich an die Programmierung kleiner<br />
<strong>Makros</strong> machst, solltest du sicher sein, dass die<br />
Struktur deiner Datenbank sauber und durchdacht<br />
konzipiert ist.<br />
Der Haken ist nämlich der: Hast du schon diverse<br />
Formulare, Berichte und <strong>Makros</strong> angelegt und<br />
bemerkst dann, dass deine Daten anders auf die<br />
unterschiedlichen Tabellen verteilt sein müssen,<br />
so bist du gezwungen, alle Abfragen, die auf<br />
diesen Tabellen basieren, neu zu erstellen. Und<br />
haben sich dann die Abfragen geändert, funktioniert<br />
natürlich auch kein Formular mehr, das auf<br />
diesen Abfragen beruht.<br />
Das zieht leicht viel unnütze Arbeit nach sich, die<br />
du dir durch ein wenig Planungsaufwand im<br />
Vorhinein leicht hättest ersparen können.<br />
Bevor du viel Zeit und Aufwand in ein Formular,<br />
einen Bericht oder gar in die Programmierung von<br />
<strong>Makros</strong> investierst, plane und prüfe die Datenstruktur,<br />
also den Aufbau und die Verknüpfung der<br />
Tabellen deiner Datenbank. Der Grundsatz lautet:<br />
keine Redundanz (d.h. keine Daten doppelt)!<br />
Benötigte Hardware<br />
Willst du nur so nebenbei ein paar <strong>Makros</strong> anfertigen,<br />
ist ein 17-Zoll-Monitor gerade noch hinreichend.<br />
1024 x 768 Punkte sollte er aber schon<br />
flimmerfrei darstellen können. Du willst es nachprüfen?<br />
Wähle START|EINSTELLUNGEN| SYSTEM-<br />
STEUERUNG|ANZEIGE|EINSTELLUNGEN.<br />
Hast du aber vor, <strong>für</strong> eine auch nur etwas größere<br />
Datenbank <strong>mit</strong> diversen Tabellen, Abfragen, Formularen<br />
und Berichten <strong>Makros</strong> zu erstellen, die<br />
den Ablauf häufig verwendeter Arbeitsabläufe<br />
<strong>automatisieren</strong>, kann der Monitor bzw. die Auflösung<br />
des Monitors gar nicht groß genug sein.<br />
Eigentlich sollte ich sagen: kann die Arbeitsfläche<br />
gar nicht groß genug sein. Windows<br />
erlaubt nämlich schon seit Jahren den Anschluss<br />
von zwei Monitoren an einen Rechner. Der benötigt<br />
dann allerdings zwei Grafikkarten. Aber ein<br />
zweiter 17-Zöller und eine passable Grafikkarte<br />
kosten nur wenig mehr als 200 Euro, weniger<br />
jedenfalls als ein 20- oder 21-Zoll-Monitor und<br />
eine sehr gute Grafikkarte, die darauf 1600 x<br />
1200 Punkte flimmerfrei darstellen kann. Vielleicht<br />
steht ja im Büro nebenan ein unbenutzter<br />
Rechner ...?<br />
Sicher ist es günstig, zwei gleiche Karten und<br />
gleiche Monitore zu verwenden, das muss aber<br />
nicht sein. Umbau der Grafikkarte und Anschluss<br />
des Monitors dauern zehn Minuten, die Konfiguration<br />
sollte Windows normalerweise alleine<br />
schaffen. Du musst Windows lediglich <strong>mit</strong>teilen,<br />
welcher Monitor rechts und welcher links steht.<br />
Bewegst du dann die Maus, springt der Mauszeiger<br />
automatisch vom rechten Rand des linken<br />
Bildschirms an den linken Rand des rechten Bildschirms.<br />
Auch Fenster kannst du frei von einem<br />
Monitor auf den anderen verschieben.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
Voraussetzungen <strong>für</strong> dieses Heft<br />
7<br />
So kannst du auf einem Monitor ein großes Formular<br />
so darstellen, wie es der Anwender sieht –<br />
und auf dem zweiten das Datenbankfenster, den<br />
Makroeditor und eventuell weitere Hilfsfenster<br />
wie Eigenschaftenfenster oder die Feldliste.<br />
Software und Daten<br />
<strong>Access</strong> hast du ohnehin installiert – entweder<br />
<strong>Access</strong> 2000 oder <strong>Access</strong> 2002.<br />
Auch wenn du <strong>Access</strong> 97 verwendest, wirst du <strong>mit</strong><br />
diesem Heft zurecht kommen – die Unterschiede<br />
sind nicht besonders groß.<br />
Was du noch brauchst, um die hier beschriebenen<br />
Beispiele nachvollziehen zu können, ist die Beispiel-Datenbank<br />
NORDWIND.MDB. Du findest sie<br />
auf deinem Rechner wahrscheinlich in dem Verzeichnis<br />
...OFFICE\BEISPIEL“; meist heißt es<br />
C:\PROGRAMME\MICROSOFT OFFICE\OFFICE\<br />
BEISPIEL oder ähnlich. Lege dir ein Arbeitsverzeichnis<br />
an, in dem du die <strong>mit</strong> diesem Heft erstellten<br />
Beispiele speichern kannst (etwa<br />
C:\ACCESSMAKROS) und kopiere in dieses<br />
Verzeichnis die Originaldatei NORDWIND.MDB.<br />
Findest du sie allerdings auch <strong>mit</strong> der Suchfunktion<br />
des Windows-Explorers nicht, musst du sie<br />
nachinstallieren.<br />
Bist du <strong>mit</strong> dem Installationsprogramm nicht<br />
vertraut, kannst du die Datei <strong>für</strong> <strong>Access</strong> 97 oder<br />
2000 auch einfach von der Office-CD-ROM<br />
kopieren. Das Verfahren beschreibe ich gleich.<br />
Bei <strong>Access</strong> 2002 kommst du leider nicht um das<br />
Installationsprogramm SETUP.EXE herum; wähle<br />
FEATURES HINZUFÜGEN ODER ENTFERNEN, und<br />
das Programm führt dich durch die Installation;<br />
unter dem Zweig von <strong>Access</strong> findest du dann<br />
auch die Nordwind-Datenbank.<br />
1. Lege die Office-97 oder 2000-CD in das CD-<br />
ROM-Laufwerk und brich das Setup-Programm<br />
ab, falls es automatisch angelaufen<br />
ist.<br />
2. Starte den Windows-Explorer<br />
3. Navigiere auf deinem CD-ROM-Laufwerk in<br />
das Verzeichnis <strong>mit</strong> den Beispieldateien.<br />
Bei Office 97 heißt das Verzeichnis etwa<br />
D:\OFFICE\BEISPIEL.<br />
Bei Office 2000 heißt das Verzeichnis<br />
D:\PFILES\MSOFFICE\<br />
OFFICE\SAMPLES. Die Datei heißt hier nur<br />
NWIND.MDB.<br />
Bei Office xp heißt das Verzeichnis<br />
D:\PROGRAMME\MICROSOFT OFFICEXP\<br />
OFFICE10\SAMPLES<br />
1. Kopiere die Originaldatei in dein Arbeitsverzeichnis<br />
(siehe oben).<br />
2. Benenne sie ggf. in NORDWIND.MDB um.<br />
Beispieldatenbank vorbereiten<br />
Starte <strong>Access</strong> und öffne die soeben kopierte<br />
Datenbank NORDWIND.MDB. Den Hinweis, dass<br />
die Datei schreibgeschützt ist, bestätigst du <strong>mit</strong><br />
OK. Das Begrüßungsfenster <strong>mit</strong> dem Leuchtturm<br />
schließt du ebenfalls <strong>mit</strong> einem Klick auf OK.<br />
Verwendest du <strong>Access</strong> 2002, so schließt du auch<br />
das Formular HAUPTÜBERSICHT <strong>mit</strong> einem Klick<br />
auf die Schaltfläche SCHLIEßEN in der oberen<br />
rechten Ecke.<br />
Willst du dir einen Überblick über die Datenstruktur<br />
verschaffen, wählst du EXTRAS|BEZIE-<br />
HUNGEN.Du siehst, dass es hier 8 Tabellen gibt,<br />
die wir später verwenden werden.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
8<br />
Voraussetzungen <strong>für</strong> dieses Heft<br />
Die Beziehungen zwischen den Tabellen sehen<br />
wir uns später näher an. Zunächst nur so viel: Es<br />
gibt hier eine Reihe von 1:n-Beziehungen. So<br />
gehören z.B. zu einem Kunden mehrere Bestellungen;<br />
bei einem Neukunden sind aber auch 0<br />
oder 1 Bestellungen möglich. Gleiches gilt <strong>für</strong><br />
die Tabellen Lieferanten und Artikel.<br />
Zwischen den Tabellen Artikel und Bestellungen<br />
besteht eine m:n-Beziehung – denn ein<br />
bestimmter Artikel kann Bestandteil mehrerer<br />
Bestellungen sein, wie umgekehrt auch eine<br />
Bestellung meist auch mehrere Artikel umfasst.<br />
Um eine derartige Beziehung in einem relationalen<br />
Datenbanksystem abzubilden, wird eine Verknüpfungstabelle<br />
benötigt, die mindestens die<br />
beiden Primärschlüsselfelder der Tabellen enthalten<br />
muss, die in der m:n-Beziehung stehen; hier<br />
ist es die Tabelle Bestelldetails <strong>mit</strong> den Feldern<br />
Bestell-Nr und Artikel-Nr.<br />
Klicke im Datenbankfenster nacheinander die<br />
verschiedenen Register an. Du findest etliche<br />
Abfragen, Formulare, Berichte, <strong>Makros</strong> und<br />
Module in der Datenbank. Die wollen wir hier<br />
nur teilweise benutzen – wenn du sie jetzt aber<br />
löschst, wäre deine Nordwind.mdb kaputt. Also<br />
legst du eine neue Datenbank an und importierst<br />
bei Bedarf die benötigten Objekte.<br />
1. Lege eine neue leere Datenbank in dem<br />
Arbeitsverzeichnis <strong>für</strong> dieses Heft (etwa<br />
c:\<strong>Access</strong><strong>Makros</strong>) an.<br />
Das ist in den verschiedenen Versionen von<br />
<strong>Access</strong> etwas unterschiedlich. Aber da du ja<br />
hoffentlich kein <strong>Einsteiger</strong> mehr bist, weißt du<br />
sicher, wie das geht.<br />
1. Gib ihr den Namen SÜDWIND. (<strong>Access</strong> fügt<br />
automatisch .MDB an.)<br />
Achte darauf, dass du in deinem Arbeitsverzeichnis<br />
bleibst – notfalls navigierst du<br />
dorthin.<br />
1. Wähle dann DATEI|EXTERNE DATEN|IMPOR-<br />
TIEREN...<br />
2. Du findest in deinem Arbeitsverzeichnis die<br />
Datenbank NORDWIND.MDB. Markiere sie<br />
und klicke auf IMPORTIEREN. <strong>Access</strong> importiert<br />
aber noch nicht, sondern liest nur, welche<br />
Objekte es in dieser Datenbank gibt.<br />
Klicke bitte erst dann auf OK, wenn ich es dir<br />
sage.)<br />
1. Der Bereich <strong>für</strong> TABELLEN zeigt die acht<br />
Tabellen von NORDWIND.MDB. Markiere sie<br />
<strong>mit</strong> einem Klick auf ALLE AUSWÄHLEN.<br />
Halt: Bevor du <strong>mit</strong> OK wirklich importierst,<br />
klicke auf die Schaltfläche OPTIONEN>>.<br />
Du siehst: Es werden normalerweise auch die<br />
BEZIEHUNGEN zwischen den Tabellen importiert;<br />
von den Tabellen wiederum DEFINITION<br />
UND DATEN. Herrlich! Genau das willst du.<br />
1. Klicke auf OK. Fertig? ... fast!<br />
2. Wähle nochmals EXTRAS|BEZIEHUNGEN.<br />
Leider sieht das Bild nicht ganz so schön aus<br />
wie in der Abbildung auf der vorher gehenden<br />
Seite, aber du kannst es leicht <strong>mit</strong> der<br />
Maus selbst richten.<br />
3. Wähle EXTRAS|OPTIONEN Register ALLGE-<br />
MEIN und aktiviere die Option BEIM SCHLIEßEN<br />
KOMPRIMIEREN. Das hält die Datenbank<br />
immer klein, kompakt und schnell.<br />
4. Schließlich wählst du DATEI|BEENDEN und<br />
achtest auf den unteren Rand des <strong>Access</strong>-<br />
Fensters: SÜDWIND.MDB wird komprimiert<br />
und gespeichert.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
Die Arbeit <strong>mit</strong> dem Makroeditor<br />
9<br />
Die Arbeit <strong>mit</strong> dem Makroeditor<br />
Bevor wir zur <strong>Makros</strong>prache selbst kommen,<br />
müssen wir uns zunächst ein paar Dinge ansehen:<br />
Beispielsweise, wo und wie man ein Makro<br />
anlegt oder schreibt. Und wie man am besten<br />
vorgeht und was es zu beachten gibt.<br />
Der Makroeditor<br />
1. Lade die Übungsdatenbank SÜDWIND.MDB.<br />
2. Wechsle im Datenbankfenster auf das<br />
Register <strong>Makros</strong>. Da es noch kein Makro<br />
gibt, empfängt dich gähnende Leere.<br />
3. Es gibt auch keine vordefinierten Aktionen,<br />
wie in den Registern TABELLEN, ABFRAGEN,<br />
FORMULARE oder BERICHTE. Also bleibt nur<br />
ein Klick auf die Schaltfläche NEU.<br />
Egal, ob du kleine oder große Programme <strong>mit</strong> der<br />
<strong>Makros</strong>prache von <strong>Access</strong> oder <strong>mit</strong> einer anderen<br />
Programmiersprache schreibst: Mach dir immer<br />
sofort die Mühe und kommentiere, was die Aktion<br />
macht und warum es gemacht wird. Manchmal<br />
lohnt es auch die Mühe zu dokumentieren, warum<br />
es nicht anders gemacht wird.<br />
Intuitiv ist dir vielleicht zunächst eine andere<br />
Lösung eingefallen, nach längerem Probieren hast<br />
du aber bemerkt, dass es aus irgendeinem Grund<br />
so nicht realisierbar ist. Schreib es auf! Du wärst<br />
nicht der oder die Erste, der/die nach drei<br />
Monaten seine/ihre eigenen <strong>Makros</strong> nicht mehr<br />
versteht.<br />
4. Jetzt siehst du den Makroeditor: zunächst nur<br />
zwei Spalten, überschrieben <strong>mit</strong> AKTION und<br />
KOMMENTAR. Die einzelnen Makrobefehle<br />
werden hier Aktionen genannt; in die<br />
Kommentarspalte kann du beliebigen Text<br />
schreiben, der erklärt, was warum gemacht<br />
wird.<br />
Kommentare bewahren dich also davor, die<br />
gleiche mühsame Gedankenarbeit noch einmal<br />
investieren zu müssen.<br />
Im Editor siehst du unten einen Bereich, der <strong>mit</strong><br />
AKTIONSARGUMENTE überschreiben ist. Noch ist<br />
er leer. Aber zu fast jeder Aktion gibt es eine<br />
oder mehrere Angaben – Parameter oder hier<br />
eben Argumente genannt – , die weitere Details<br />
der Aktion festlegen, wie du gleich sehen wirst.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
10<br />
Das erste Makro<br />
Das erste Makro<br />
Ich erwähnte schon, dass es an die 50 verschiedene<br />
Befehle oder Aktionen gibt. Die meisten<br />
Aktionen haben sprechende Namen, das heißt,<br />
der Name sagt ganz gut aus, was die Aktion<br />
macht: Meldung informiert den Anwender <strong>mit</strong><br />
einer wichtige Meldung, ÖffnenFormular<br />
öffnet natürlich ein Formular. Mit den zusätzlichen<br />
Argumenten legst du fest, wie die Meldung<br />
denn nun lautet, ob ein Signalton erklingen soll,<br />
der den fast eingeschlafenen Anwender wecken<br />
soll (das bist du! Nein, dein Kollege, der später<br />
<strong>mit</strong> der Datenbank arbeiten soll!), oder welches<br />
Formular in welcher Darstellung zu öffnen ist.<br />
Wenn die Schreibmarke (der Cursor) in irgendeiner<br />
Zeile der Spalte Aktion blinkt, taucht (in<br />
dieser Zeile) rechts in dem Feld die Schaltfläche<br />
<strong>für</strong> eine Drop-Down-Liste auf (siehe nächstes<br />
Bild). Die Liste zeigt dir alle zur Verfügung<br />
stehenden Aktionen an.<br />
1. Öffne in der ersten Zeile des Makroeditors in<br />
der Spalte Aktion die Drop-Down-Liste.<br />
Um eine Dropdown-Liste zu öffnen, klickst du<br />
<strong>mit</strong> der Maus auf den abwärts gerichteten Pfeil<br />
– bzw. Drückst F4 oder ALT-PFEIL ABWÄRTS.<br />
1. Es wäre schön, wenn der blaue Text in der<br />
unteren rechten Ecke jeweils schon vor der<br />
Auswahl einer Aktion eine Erklärung zur<br />
Funktionalität dieser Aktion anzeigen würde.<br />
Macht er aber nicht; kommt sicher <strong>mit</strong> einer<br />
der nächsten Versionen von <strong>Access</strong>. Und auf<br />
den Computer-Messen wird <strong>Access</strong> dann laut<br />
als „noch viel anwenderfreundlicher“ angepriesen.<br />
2. Hast du die Aktion Meldung ausgewählt<br />
und drückst die EINGABETASTE, so springst<br />
du in die Spalte Kommentar – etwas früh<br />
vielleicht; den Kommentar solltest du erst<br />
schreiben, wenn die Aktion vollständig<br />
definiert ist. Günstiger scheint mir, <strong>mit</strong> der<br />
Maus auf die gewünschte Aktion zu klicken;<br />
du bleibst in der Spalte Aktion, und unten<br />
rechts wird angezeigt, was diese Aktion<br />
macht: Bei der Aktion Meldung steht dort:<br />
3. Egal, ob du dich in der Kommentar- oder der<br />
Aktionsspalte befindest: Per Mausklick oder<br />
besser <strong>mit</strong> Hilfe der Taste F6 springst du zum<br />
ersten Argument <strong>für</strong> diese Aktion. (Vgl. auch<br />
den Abschnitt über Tastenkombinationen auf<br />
Seite 73.) Achte auf den blauen Hilfetext<br />
rechts!<br />
2. Rollst du <strong>mit</strong> dem Rollbalken in der Liste<br />
nach unten, findest du hier die Namen aller<br />
Makrobefehle oder Makroaktionen. Wir<br />
suchen jetzt die Aktion Meldung.<br />
Bald weißt du schon vorher, wie die Aktion<br />
heißt, die du benötigst. Dann kannst du nach<br />
dem Öffnen der Liste einfach den ersten Buchstaben<br />
der Aktion tippen und stehst sofort auf<br />
dem Namen der ersten Aktion, die <strong>mit</strong> diesem<br />
Buchstaben beginnt. Diese Eigenschaft kennst<br />
du wahrscheinlich schon von vielen anderen<br />
Drop-Down-Listen in Windows-Programmen.<br />
4. Einer unsinnigen, aber alten Tradition folgend<br />
gibst du als Text der Meldung „Hallo<br />
Welt“ ein (oder „Hallo“ und deinen Namen<br />
oder stolz „Mein erstes Makro“ oder irgendeinen<br />
anderen redundanten Unsinn).<br />
5. Mit der TABULATOR-TASTE oder <strong>mit</strong> PFEIL-<br />
NACH UNTEN gelangst du in die zweite Zeile.<br />
Aus der Drop-Down-Liste kannst du wählen,<br />
ob der Computer beim Anzeigen des Meldungsfensters<br />
einen Signalton abspielen soll<br />
oder nicht. Wenn dein PC sich weigert, hast<br />
du Pech gehabt; im Prinzip klappt’s. Probiere<br />
es aus!<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
Das erste Makro<br />
11<br />
6. Das Argument Typ legt fest, ob und welches<br />
Symbol in deiner Meldung erscheinen soll:<br />
Entweder Ohne Symbol oder (wie hier)<br />
Kritisch:<br />
Bevor das Makro dann tatsächlich ausgeführt<br />
wird, teilt <strong>Access</strong> dir <strong>mit</strong>, dass es zunächst<br />
gespeichert werden muss: safety first ist nicht<br />
verkehrt. Dabei muss das Kind natürlich einen<br />
Namen bekommen. Der vorgeschlagene Name<br />
Makro1 ist <strong>für</strong> spätere Zeiten nicht gerade<br />
aussagekräftig. Ich habe als treffenden Namen<br />
eingegeben:<br />
7. Oder Warnmeldung (?):<br />
8. Oder Warnmeldung (!):<br />
9. Oder Information:<br />
1.<br />
Hast du die Aktion Meldung erforscht, so<br />
schließt du das Makro <strong>mit</strong> DATEI|SCHLIEßEN oder<br />
durch einen Klick auf diese<br />
Schaltfläche in der rechten oberen<br />
Ecke des Editor-Fensters.<br />
Zwei Hinweise noch zur Aktion Meldung:<br />
• Der Text kann maximal 255 Zeichen lang<br />
sein.<br />
• Aber viel gravierender: Andere Schaltflächen<br />
als OK sind nicht möglich; kein JA oder<br />
NEIN, kein ABBRECHEN. Und es gibt auch<br />
keine andere Aktion, die einen solchen<br />
Dialog <strong>mit</strong> dem Anwender erlaubt. Ein<br />
ärgerlicher Nachteil der <strong>Makros</strong>prache.<br />
Es gibt aber einen Trick, wie du doch zu einem<br />
Meldungsfenster <strong>mit</strong> zwei Schaltflächen kommst.<br />
Ich muss dir aber vorher noch einige andere Dinge<br />
erklären, da<strong>mit</strong> du verstehst, wie der Trick<br />
funktioniert. Ich komme auf das Thema zurück.<br />
10. Das Argument Titel legt den Text fest, der in<br />
der Titelleiste des Meldungsfensters<br />
erscheint:<br />
So, nun darfst du spielen. Du startest<br />
das Makro <strong>mit</strong> Hilfe dieser<br />
Schaltfläche.<br />
Ein Makro un<strong>mit</strong>telbar aus dem Editor heraus zu<br />
starten ist zu Testzwecken ganz praktisch. Aber<br />
um den Anwender auf irgend etwas hinzuweisen,<br />
kann das so ja wohl nicht gehen.<br />
Richtig!<br />
Später zeige ich dir andere Methoden, um<br />
<strong>Makros</strong> zu starten: per Schaltfläche, auf die der<br />
Anwender klickt (etwa aus einem Formular<br />
heraus) oder gar automatisch, wenn irgendein<br />
Ereignis eintritt, das der Anwender nur indirekt<br />
ausgelöst hat (siehe Seite 26).<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
12<br />
Das zweite Makro<br />
Das zweite Makro<br />
So trivial wie bisher werden deine <strong>Makros</strong> auf<br />
Dauer wohl nicht bleiben. Wir werden nun ein<br />
paar weitere Zeilen hinzufügen, aber ich muss<br />
dich enttäuschen: Es bleibt noch bei der Aktion<br />
Meldung; gleichzeitig lernst du den Editor<br />
etwas weiter kennen.<br />
1. Klick im Datenbankfenster, Register<br />
MAKROS auf die Schaltfläche NEU.<br />
2. Verwende in der ersten Zeile die Aktion<br />
Meldung <strong>mit</strong> diesen Argumenten:<br />
Meldung<br />
Meldung<br />
Shut up, Bill!<br />
Signalton<br />
Ja<br />
Typ<br />
Kritisch<br />
Titel<br />
Antwort<br />
1. Wähle DATEI|SPEICHERN und vergib den<br />
Namen Ich an Bill. Dann führe das Makro<br />
aus. Das Ergebnis ist wie erwartet.<br />
Aktionszeilen einfügen<br />
Nun möchtest du aber, dass vor dieser Meldung<br />
noch eine andere Aktion ausgeführt wird<br />
1. Klicke in der<br />
ersten Zeile auf<br />
die Markierspalte ganz links. Da<strong>mit</strong> wird die<br />
Zeile markiert.<br />
2. Dann kannst du <strong>mit</strong> der Taste EINFG über der<br />
ersten Zeile eine Leerzeile einfügen.<br />
3. Füge hier noch eine Meldung ein, die<br />
besagt: Jetzt geht’s los!.<br />
4. Lasse die dritte Zeile leer. In der vierten Zeile<br />
soll nochmals die Aktion Meldung aufgerufen<br />
werden. Tippe zunächst einmal nur den<br />
Buchstaben m.<br />
5. <strong>Access</strong> schlägt die erste Aktion <strong>mit</strong> m vor,<br />
nämlich maximieren. Die wollen wir aber<br />
nicht. Tippe noch ein e – na also: meldung.<br />
Die soll’s sein!<br />
6. Mit F6 kannst du sofort die Aktionsargumente<br />
festlegen, nämlich als Meldungstext:<br />
Dem hab ich’s gezeigt.<br />
7. <strong>Access</strong> hat den Namen der Aktion orthographisch<br />
korrekt als Meldung geschrieben.<br />
8. Die verbleibenden Argumente kannst du nach<br />
Belieben vergeben.<br />
9. Führe das Makro aus; zunächst sollst du<br />
wieder speichern. Ein Name <strong>für</strong> das Makro<br />
ist ja schon vergeben.<br />
<strong>Makros</strong> strukturieren<br />
Du siehst: Die Leerzeile bleibt ohne Auswirkung,<br />
das Makro läuft darüber einfach hinweg.<br />
Längere <strong>Makros</strong> kannst du dadurch etwas strukturieren<br />
und leichter lesbar machen, dass du<br />
logisch zusammengehörige Aktionen in Blöcke<br />
schreibst, die durch Leerzeilen optisch getrennt<br />
werden.<br />
Aktionen kommentieren<br />
Spätestens jetzt solltest du auch daran denken,<br />
die Kommentarspalte sinnvoll zu ergänzen. Bei<br />
mir sieht das Makro jetzt so aus:<br />
Spaltenbreite einstellen<br />
Die Breite der Spalten kannst du durch Ziehen<br />
<strong>mit</strong> der Maus verändern. Stelle die Maus dazu auf<br />
den Trennstrich zwischen zwei Spalten:<br />
Erfahrene Excel-Anwender wissen sicher, dass<br />
man die Spaltenbreite durch einen Doppelklick<br />
auf den Spaltentrennstrich auf die optimale Breite<br />
einstellen kann. Probier es aus! Die Breite einer<br />
Spalte ist dann optimal, wenn der längste Eintrag<br />
einer Zeile gerade darin Platz findet.<br />
Aktionszeilen löschen<br />
Zum Löschen der aktuellen Zeile benutzt du die<br />
Taste ENTF. Zum Einfügen oder Löschen von<br />
Aktionszeilen kannst du natürlich auch<br />
diese Symbole nehmen:<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
Das zweite Makro<br />
13<br />
Aktionszeilen umstellen<br />
Willst du die Reihenfolge deiner Aktionen<br />
ändern, markierst du in der Markierspalte eine<br />
Aktion (oder auch mehrere), klickst ein zweites<br />
Mal in die Spalte und ziehst die markierte Zeile<br />
<strong>mit</strong> der Maus an die gewünschte Stelle.<br />
Wahrscheinlich kennst du das Verhalten von<br />
Word oder Excel.<br />
Die gewünschte Aktion finden<br />
Viele Aktionen haben Namen, die wirklich<br />
un<strong>mit</strong>telbar verständlich sind; beispielsweise:<br />
• Drucken<br />
• EinblendenSymbolleiste<br />
• GeheZuDatensatz<br />
• oder auch alle Aktionen, die <strong>mit</strong> Öffnen<br />
beginnen<br />
Bei anderen Befehlen hilft es, wenn du sie<br />
einfach als Aktion auswählst und den blauen<br />
Erklärungstext unten rechts im Editorfenster<br />
durchliest; auch hierzu ein paar Beispiele:<br />
AnwendenFilter<br />
AusgabeIn<br />
(gemeint ist<br />
„Ausgabe in“, nicht<br />
„Ausgabeln“)<br />
Maximieren<br />
Wendet Filter, Abfrage<br />
oder SQL WHERE-<br />
Klausel auf eine Tabelle,<br />
ein Formular oder einen<br />
Bericht an, um die Datensätze<br />
... einzuschränken<br />
oder zu sortieren.<br />
Gibt die Daten im angegebenen<br />
Datenbankobjekt<br />
im Format Microsoft<br />
Excel (:XLS), Rich-Text<br />
(:RTF), MS-DOS-Text<br />
(:TXT) ... aus.<br />
Ändert das aktuelle<br />
Fenster in ein Vollbild,<br />
da<strong>mit</strong> dieses das Microsoft<br />
<strong>Access</strong>-Fenster<br />
ausfüllt.<br />
Führt das nicht zum Ziel, so solltest du im Kapitel<br />
„Liste der Makroaktionen“ die Abschnitte<br />
„Makroaktionen alphabetisch sortiert“ (Seite 64)<br />
und „Makroaktionen gruppenweise sortiert“ (ab<br />
Seite 65) zu Rate ziehen.<br />
Argumente <strong>für</strong> Aktionen<br />
Schwierig wird es teilweise bei den Argumenten:<br />
• Es gibt Aktionen, die kein Argument benötigen<br />
(AbbrechenEreignis, AnzeigenAlleDatensätze,<br />
Maximieren,<br />
Minimieren); da ist es einfach<br />
• Es gibt aber auch Aktionen <strong>mit</strong> sehr vielen<br />
Argumenten: AusgabeIn hat 7 Argumente,<br />
SendenObjekt sogar 10; Suchen-<br />
Datensatz, TransferDatenbank und<br />
TransferText haben alle 7.<br />
• Und schließlich erfordern manche Aktionen<br />
Argumente, bei denen du sicher zuerst etwas<br />
Zeit in Forschung investieren musst.<br />
Ein Beispiel ist die Aktion Tastaturbefehle;<br />
hier gibt es das Argument Tastenfolge. Zur<br />
Erklärung bietet dir <strong>Access</strong> an: „Geben Sie die zu<br />
verarbeitende Tastenfolge ein. Verwenden Sie<br />
die Syntax des Visual Basic-Befehls ‘SendKeys’,<br />
um die Tasten festzulegen. Notwendiges<br />
Argument.“ Die Hilfe-Datei zu Visual Basic hast<br />
du aber möglicherweise gar nicht installiert – und<br />
selbst wenn, weißt du nicht, wie du da dran<br />
kommst. Du siehst: Du musst erst Forschung<br />
betreiben (oder Seiten 40 und vor allem 61f<br />
studieren.) Eins kannst du aber von diesem<br />
Beispiel schon ableiten:<br />
Es gibt notwendige Argumente, die du auf jeden<br />
Fall angeben musst, und nicht-notwendige (optionale)<br />
Argumente. Für die nicht-notwendigen Argumente<br />
gibt es manchmal Standardwerte – d.h.<br />
wenn du nichts angibst, wird ein bestimmter Wert<br />
als Standard angenommen.<br />
Dazu ein Beispiel: das Argument Exemplare bei<br />
der Aktion Drucken. Gibst du nichts an, wird<br />
genau ein Exemplar gedruckt.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
14<br />
<strong>Makros</strong> testen<br />
<strong>Makros</strong> testen<br />
Es gibt eine alte Ingenieur-Weisheit, die lautet:<br />
Methodik ersetzt den Zufall durch den Irrtum.<br />
Beim Programmieren wirst du es auch bemerken<br />
– nicht unbedingt oft bei der <strong>Makros</strong>prache von<br />
<strong>Access</strong>, sicher aber, wenn du dich <strong>mit</strong> Visual<br />
Basic oder C oder Pascal befasst: in unserem<br />
Hirn laufen auch bei einfachen logischen Konstrukten<br />
so viele Details automatisch ab, dass es<br />
zunächst viel Übung kostet, all die kleinen<br />
impliziten Schritte in einem Programm auch<br />
explizit zu formulieren.<br />
Anfänglich wirst du viele Fehler machen, weil du<br />
eine Aktion anstößt, ohne geprüft zu haben, ob<br />
auch alle notwendigen Voraussetzungen erfüllt<br />
sind.<br />
Leider bietet die <strong>Makros</strong>prache von <strong>Access</strong><br />
überhaupt keine Möglichkeit, unerwartete Fehler<br />
abzufangen. Du müsstest also immer vorher<br />
prüfen, ob sämtliche Voraussetzungen <strong>für</strong> eine<br />
Aktion auch erfüllt sind; z.B. ob ein Formular,<br />
das <strong>mit</strong> ÖffnenFormular geöffnet werden<br />
soll, überhaupt vorhanden ist. Aber auch da<strong>für</strong><br />
stellt die <strong>Makros</strong>prache keine Aktionen bereit.<br />
Du musst also immer davon ausgehen, dass deine<br />
Datenbank ständig so heil ist, wie zu dem<br />
Zeitpunkt, als du dein Makro geschrieben hast.<br />
Stell dir vor, in einer Applikation gibt es ein<br />
Formular <strong>mit</strong> dem Namen Hauptmenü. Dieses<br />
Formular enthält aber keine Daten, sondern es<br />
handelt sich um ein Formular, das allein Verwaltungszwecken<br />
dient. Es enthält diverse<br />
Schaltflächen, <strong>mit</strong> deren Hilfe du verschiedene<br />
Aktionen in der Datenbank anstoßen kannst:<br />
• Kundendaten erfassen und ansehen<br />
• Artikeldaten erfassen und ansehen<br />
• Rechnungen schreiben<br />
• Mahnungen drucken<br />
Für viele dieser Aktivitäten wird vom Hauptmenü<br />
aus <strong>mit</strong> einem Klick auf eine Schaltfläche<br />
ein Formular geöffnet oder ein Bericht geöffnet<br />
und gedruckt.<br />
Willst du ein Formular öffnen, gibt es folgende<br />
Aktion:<br />
ÖffnenFormular<br />
Formularname<br />
Ansicht<br />
Filtername<br />
Bedingung<br />
Datenmodus<br />
Fenstermodus<br />
Kunde<br />
Formular<br />
Notwendig ist die Angabe der ersten zwei Argumente,<br />
d.h. das Makro muss wissen, welches<br />
Formular in welcher Ansicht (Formular, Entwurf,<br />
Seitenansicht, Datenblatt, PivotTable oder Pivotchart)<br />
dargestellt werden soll; meist wohl in der<br />
Formularansicht.<br />
Stehst du in dem Eingabefeld <strong>für</strong> das Argument<br />
Formularname, bietet dir der Editor in einer<br />
Drop-Down-Liste die Namen aller vorhandenen<br />
Formulare an. Nicht schlecht – ein Tippfehler<br />
kann dir also kaum unterlaufen.<br />
Eine fehlgeschlagene Aktion<br />
Was passiert aber, wenn das Formular irgendwann<br />
doch nicht mehr existiert – sei es, dass es<br />
absichtlich oder versehentlich gelöscht wurde<br />
oder dass es aus irgendeinem Grund später<br />
jemand umbenannt hat? (Umbenennen ist immer<br />
nachteilig! Vgl. Kapitel „Namenskonventionen“<br />
auf Seite 18.) In deiner Datenbank (<strong>mit</strong> der du<br />
arbeitest, während du dieses Heft liest) gibt es<br />
beispielsweise kein Formular <strong>mit</strong> dem Namen<br />
Kunde. Macht nichts, wir wollen ja gerade einen<br />
Programmfehler provozieren. Erstellst du ein<br />
Makro <strong>mit</strong> der Aktion ÖffnenFormular und<br />
führst es aus, so erscheint zuerst dieser Hinweis:<br />
Das wäre <strong>für</strong> den unbedarften Anwender (natürlich<br />
ist dein Kollege gemeint!) noch erträglich,<br />
aber sobald du – ähh – er auf OK klickt, sieht er<br />
folgendes:<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
4.<br />
<strong>Makros</strong> testen<br />
15<br />
5. Klicke auf das Symbol Einzelschritt.<br />
6. Führe das Makro aus.<br />
Vor Ausführung jeder einzelnen Aktion erscheint<br />
ein Dialogfeld <strong>mit</strong> diesem Aufbau:.<br />
Das ist nicht zumutbar.<br />
Aber – wie gesagt – die <strong>Makros</strong>prache bietet<br />
keine Möglichkeit, ein Makro, das auf einen<br />
Fehler stößt, vernünftig zu beenden.<br />
Und eine Aktion, die vorher die Existenz eines<br />
Objektes prüft, etwa diese (angenommene):<br />
ExistiertObjekt<br />
Objekttyp<br />
Objektname<br />
gibt es leider nicht.<br />
Einzelschritt-Modus<br />
Möglicherweise wird ein Makro normal beendet,<br />
führt aber trotzdem nicht zu dem gewünschten<br />
Ziel, auch ohne dass es <strong>mit</strong> einer fehlgeschlagenen<br />
Aktion abbricht. Vielleicht hast du einen<br />
logischen Fehler drin. Dann ist es – jedenfalls bei<br />
einem Makro, das aus mehreren Aktionen besteht<br />
– nicht immer leicht festzustellen, wo der Fehler<br />
liegt.<br />
<strong>Access</strong> bietet die Möglichkeit, ein Makro im<br />
Einzelschrittmodus, das heißt Aktion <strong>für</strong> Aktion,<br />
einzeln auszuführen. Da wir noch kein längeres<br />
Makro haben, greifen wir noch einmal auf Ich an<br />
Bill zurück:<br />
1. Öffne das Makro Ich an Bill in der Entwurfsansicht<br />
– Entweder so:<br />
2. oder indem du den Makronamen <strong>mit</strong> der<br />
rechten Maustaste anklickst:<br />
3. Im Kontextmenü wählst du dann den Befehl<br />
ENTWURFSANSICHT.<br />
Du siehst den Makronamen, den Aktionsnamen<br />
der nächsten Aktion und die Einstellungen aller<br />
Argumente der Aktion. Was es <strong>mit</strong> dem Feld<br />
Bedingung auf sich hat, erfährst du gleich.<br />
Die Schaltflächen ermöglichen weitere Ausführung<br />
des <strong>Makros</strong> schrittweise oder normal ablaufend<br />
(Weiter). Oder du kannst die Ausführung<br />
des <strong>Makros</strong> Anhalten.<br />
Dieses Verfahren hilft oft weiter – aber nicht<br />
immer: ab und zu stehst du dennoch vor einer<br />
Situation, die dir zunächst Rätsel aufgibt. Alles<br />
sieht sauber aus, du hast den ganzen Ablauf des<br />
<strong>Makros</strong> überdacht, jede einzelne Aktion geprüft –<br />
und das Ergebnis ist trotzdem nicht korrekt.<br />
Was tun?<br />
Manchmal möchtest du eine Aktion <strong>mit</strong>ten im<br />
Makro mal testweise still legen und das Ergebnis<br />
dann begutachten.<br />
Bei einer normalen Programmiersprache würde<br />
man jetzt auskommentieren, das heißt, aus der<br />
Befehlszeile eine Kommentarzeile machen. Dazu<br />
verwendet man spezielle Zeichen, die dem<br />
Compiler <strong>mit</strong>teilen, dass jetzt irgendein Text<br />
folgt, den er nicht beachten muss, weil er nicht<br />
zum Programm gehört. Manchmal beginnt dann<br />
eine Zeile <strong>mit</strong> einen einzelnen Hochkomma ‘<br />
oder man muss es so schreiben:<br />
/* Hier steht jetzt Kommentar */.<br />
Egal! Geht hier nicht. Leider.<br />
Du könntest den Befehl löschen; das ist aber<br />
nicht ökonomisch, wenn du ihn wahrscheinlich<br />
eine Minute später wieder einbauen musst. Aber<br />
es gibt einen Trick.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
16<br />
Makrogruppen<br />
Aktionen vorübergehend stillegen<br />
Über Aktionen, die erst ausgeführt werden, wenn<br />
eine bestimmte Bedingung erfüllt ist, werde ich<br />
dir später etwas erzählen. Aber die Technik<br />
brauchen wir schon jetzt.<br />
1. Öffne das Makro Ich an Bill in der Entwurfsansicht.<br />
2. Klicke auf dieses Symbol:<br />
Es soll eine Verzweigung im Programm<br />
darstellen: wenn die Bedingung erfüllt ist,<br />
dann weitermachen, sonst abzweigen und<br />
etwas anderes machen.<br />
3. Links neben der Spalte Aktion wird die<br />
Spalte Bedingung eingeblendet.<br />
Willst du die Ausführung einer Aktion verhindern,<br />
kannst du in die Bedingungsspalte un<strong>mit</strong>telbar<br />
den Wahrheitswert falsch eintragen.<br />
Faul wie Programmierer sind, schreiben sie zu<br />
dem gewünschten Zweck oft einen Vergleich, der<br />
sicher immer falsch ist und wesentlich kürzer als<br />
das Wort falsch: <strong>mit</strong> 1=2 hast du einen kleinen<br />
Teil deines Programmes um 50% gekürzt. Schön.<br />
(Ganz coole Programmierer schreiben 9=0 oder<br />
so etwas; rat mal, warum!)<br />
1. Lege die Meldung Shut up, Bill still,<br />
indem du einen immer falschen Vergleich in<br />
die Zeile einträgst.<br />
In diese Spalte kannst du eine Bedingung<br />
schreiben, die entweder erfüllt ist oder nicht. Ein<br />
Vergleich gibt als Ergebnis dann entweder den<br />
Wert Wahr oder den Wert Falsch.<br />
Etwa [Familienstand]=“ledig“, d.h. im<br />
Klartext: wenn das Feld Familienstand den Wert<br />
ledig enthält, dann führe die Aktion aus. Sonst<br />
wird sie übersprungen und die Ausführung des<br />
<strong>Makros</strong> <strong>mit</strong> der nächsten Aktion fortgesetzt.<br />
Wir werden uns ab Seite 20 eingehender <strong>mit</strong><br />
Bedingungen bzw. der bedingten Ausführung<br />
von Makroaktionen befassen; jetzt können wir<br />
die Bedingungsspalte aber etwas zweckentfremden,<br />
um Aktionen vorübergehend still zu legen.<br />
Makrogruppen<br />
Ich habe auf Seite 14 schon von einem Verwaltungsformular<br />
oder Hauptmenü gesprochen. Stell<br />
dir vor: Da gibt es 10 Schaltflächen <strong>mit</strong> denen<br />
sich 10 verschiedene Formulare öffnen lassen.<br />
Das ergäbe dann 10 kleine <strong>Makros</strong> <strong>mit</strong> jeweils<br />
nur einer einzigen Aktion (ÖffnenFormular).<br />
Zu jedem Formular gehören möglicherweise auch<br />
noch ein paar <strong>Makros</strong> ... Die Anzahl der <strong>Makros</strong><br />
würde schnell sehr groß, und es entstünde die<br />
Gefahr, die Übersicht zu verlieren.<br />
2. Führe das Makro normal und im Einzelschrittmodus<br />
aus und prüfe, was passiert.<br />
Der Einzelschrittmodus zeigt, warum die Meldung<br />
Shut up, Bill nicht angezeigt wird:<br />
Die Bedingung 0=9 ist natürlich falsch!<br />
Zum Glück gibt es Abhilfe: Mehrere <strong>Makros</strong><br />
kannst du in einer Makrogruppe zusammenfassen.<br />
Natürlich wirst zu zweckmäßigerweise solche<br />
<strong>Makros</strong> in eine Gruppe schreiben, die logisch<br />
oder organisatorisch zusammengehören. Eine<br />
Makrogruppe sieht im Datenbankfenster aus wie<br />
ein einfaches Makro, jedes Makro einer Makrogruppe<br />
benötigt jedoch einen spezifischen<br />
Makronamen.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
Makrogruppen<br />
17<br />
Namensspalte<br />
Da<strong>für</strong> kann man im Makroeditor eine zusätzliche<br />
Spalte einrichten.<br />
1. Lege ein neues Makro an.<br />
2. Mit einem Klick auf dieses Symbol ...<br />
3. öffnet sich die<br />
Spalte<br />
Makroname:<br />
Du hast nun die Möglichkeit, mehrere <strong>Makros</strong><br />
untereinander zu schreiben. Jedes Makro<br />
bekommt einen eigenen Namen. Das Ende eines<br />
<strong>Makros</strong> brauchst du nicht kenntlich zu machen.<br />
Vor einem Makronamen endet automatisch das<br />
Makro, das oberhalb davon notiert ist.<br />
Ich habe der Einfachheit halber die beiden<br />
<strong>Makros</strong> Bill an mich und Ich an Bill geöffnet<br />
und durch Kopieren hier eingefügt. Die Namen<br />
habe ich hier in der Spalte Makroname nochmals<br />
eingetragen. Du solltest die Spalte Bedingung<br />
einmal öffnen und etwa noch vorhandene<br />
Bedingungen löschen. Der Makrogruppe habe ich<br />
den Namen Konversation gegeben.<br />
So sieht jetzt die<br />
Makrogruppe<br />
Konversation in<br />
der Entwurfsansicht<br />
aus:<br />
Die Leerzeile kann auch entfallen, fördert aber<br />
die Übersicht.<br />
<strong>Makros</strong> einer Makrogruppe starten<br />
Führst du jetzt das Makro <strong>mit</strong> Hilfe des<br />
entsprechenden Symbols aus, so startet<br />
immer nur das oberste Makro; hier also Bill an<br />
mich. Es gibt aber noch den Befehl EXTRAS|<br />
MAKRO|MAKRO AUSFÜHREN.<br />
Da<strong>mit</strong> öffnet sich dieses Dialogfeld. Du siehst:<br />
Hier sind die beiden <strong>Makros</strong> deiner Makrogruppe<br />
<strong>mit</strong> einem zweiteiligen Namen aufgeführt. Markierst<br />
du hier Konversation.Ich an Bill, kannst<br />
du auch ein Makro aus einer Makrogruppe ausführen,<br />
das hier nicht als oberstes notiert ist.<br />
Der oben genannte Menübefehl weist dich darauf<br />
hin, dass es ein Symbol gibt, <strong>mit</strong> dem du den<br />
Befehl ausführen kannst. Leider ist das Symbol<br />
nicht in der Symbolleiste<br />
Makroentwurf enthalten.<br />
Wie du es hier einbauen kannst, zeige ich dir im<br />
Kapitel „Tipps und Tricks“ auf Seite 70. Danach<br />
sieht deine Symbolleiste so<br />
aus:<br />
Nun kannst du auch solche <strong>Makros</strong> bequem<br />
starten, die in einer Makrogruppe stehen.<br />
Es gibt noch eine andere Art, ein Makro zu<br />
starten – die allerdings ein besonderes Risiko<br />
birgt. Markierst du im Datenbankfenster im<br />
Register <strong>Makros</strong> ein Makro oder eine Makrogruppe,<br />
so kannst du sie von hier aus auf dreierlei<br />
Art starten: <strong>mit</strong> dem Befehl AUSFÜHREN aus der<br />
Menüleiste des Datenbankfensters, dem gleichen<br />
Befehl aus dem Kontextmenü, das sich nach<br />
einem Rechtsklick auf den Makronamen öffnet,<br />
oder ganz simpel <strong>mit</strong>tels Doppelklick auf den<br />
Makronamen. Gerade die beiden letzten Vorgänge<br />
können auch leicht passieren ohne dass<br />
man es eigentlich will.<br />
Stell dir vor, das Makro, das dann abläuft,<br />
modifiziert auf irgendeine Art Daten. Das kann<br />
manchmal eine <strong>mit</strong>tlere Katastrophe <strong>für</strong> deine<br />
Datenbank bedeuten.<br />
Diese Gefahr lässt sich <strong>mit</strong> einem kleinen Trick<br />
verhindern: Lege immer Makrogruppen an (also<br />
niemals Einzelmakros), und schreibe in die erste<br />
Zeile ein Dummymakro, das nur aus dem Makronamen<br />
besteht,<br />
aber keine Aktion<br />
enthält – wie hier<br />
gezeigt:<br />
Aus dem Datenbankfenster<br />
heraus wird durch die oben beschriebenen<br />
Methoden immer nur dieses Dummymakro<br />
ohne Aktion ausgeführt.<br />
Eine Alternative dazu: Gib dem ersten Makro den<br />
Namen Dummy und statte es <strong>mit</strong> einer Aktion<br />
Meldung aus, die kurz erklärt, welchem Zweck<br />
diese Makrogruppe dient.<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03
18<br />
Namenskonventionen<br />
Namenskonventionen<br />
An einer Datenbank, die nicht im Laufe der Zeit<br />
wächst, ist – wie die Erfahrung zeigt: fast immer<br />
– irgend etwas verkehrt. Mit Wachsen meine ich<br />
nicht die Anzahl der Datensätze, die in den<br />
Tabellen gespeichert sind, sondern den Funktionsumfang.<br />
Wünsche und Phantasie der Anwender<br />
sind unbegrenzt. Wenn die ursprünglich<br />
geplante Funktionalität der Datenbank zur Zufriedenheit<br />
aller Anwender klappt, kommen<br />
sofort Wünsche nach Erweiterung auf: Nun noch<br />
dies oder das einbauen, können wir nicht auch<br />
jenes da<strong>mit</strong> erledigen?<br />
Was passiert? Aus sechs oder acht Tabellen<br />
werden bald 20, dazu gehören schnell 40 Abfragen<br />
und ebenso viele Formulare und Berichte:<br />
Hast du erst einmal da<strong>mit</strong> begonnen, gewisse<br />
Abläufe <strong>mit</strong> Hilfe von <strong>Makros</strong> zu <strong>automatisieren</strong>,<br />
so kommen schnell 200 <strong>Makros</strong> zusammen.<br />
Und jedes Kind braucht einen Namen. Jedes<br />
Tabellenfeld, jede Abfrage, jedes Steuerelement<br />
in einem Formular oder Bericht, jedes Makro.<br />
Schnell hast du einige Dutzend, ja, einige Hundert<br />
Namen zusammen.<br />
Vorsicht!<br />
Wenn du das Ganze nicht <strong>mit</strong> ein wenig System<br />
angehst, besteht deine Haupttätigkeit bald nur<br />
noch darin, herauszufinden, was die von dir<br />
selbst vor vier Wochen vergebenen Namen LiSt<br />
oder GKZ bedeuten. Noch schwieriger kann es<br />
werden, wenn mehrere Leute an der Entwicklung<br />
eine Datenbank arbeiten.<br />
Standards sind dringend notwendig!<br />
Schon seit einigen Jahren sind solche Namenskonventionen<br />
international üblich. Eine ausführliche<br />
Darstellung (vom Erfinder Gregory<br />
Reddick selbst, deshalb leider englisch) findest<br />
du hier:<br />
www.xoc.net/standards/rvbanc.asp.<br />
In dem Heft „<strong>Access</strong> 2002 <strong>für</strong> Fortgeschrittene“,<br />
das voraussichtlich im Frühjahr 2004 erscheinen<br />
wird, gehe ich auf das Thema ausführlicher ein.<br />
Als kleinen Vorgeschmack verwende ich ab hier<br />
• keine Leerzeichen mehr in Namen<br />
• <strong>für</strong> <strong>Makros</strong> das Präfix mcr<br />
(also etwa mcrBillAnMich)<br />
• <strong>für</strong> Makrogruppen das Präfix mgrp (deshalb<br />
etwa mgrpKonversation und darin<br />
mgrpKonversation.mcrIchAnBill)<br />
Namens- und Bedingungsspalte<br />
dauerhaft anzeigen<br />
Legst du ein neues Makro bzw. eine Makrogruppe<br />
an, so musst du die Namensspalte und die<br />
Bedingungsspalte immer wieder neu einschalten.<br />
Das wird auf die Dauer lästig.<br />
Mit EXTRAS|OPTIONEN|ANSICHT stehen dir zwei<br />
Optionsfelder zur Verfügung, <strong>mit</strong> deren Hilfe du<br />
die beiden Spalten optional dauerhaft anzeigen<br />
oder ausblenden kannst.<br />
Das Manko an den <strong>Makros</strong><br />
Wohl jede Programmiersprache kann Variablen<br />
und Konstanten definieren und ihnen einen (vorübergehenden<br />
oder festen) Wert zuweisen.<br />
Eigentlich müsste ich dir jetzt zeigen, wie man<br />
das macht. Aber: es geht <strong>mit</strong> der <strong>Makros</strong>prache<br />
von <strong>Access</strong> nicht.<br />
Nun, du hast eine Datenbank vor dir und da<strong>mit</strong><br />
alle Möglichkeiten, Werte in Tabellen zu speichern<br />
und aus ihnen zu lesen. Da<strong>mit</strong> hat man das<br />
obige Problem gelöst, aber das Verfahren ist umständlich.<br />
Ich werde es dir zeigen (Seite 40).<br />
<strong>Access</strong> <strong>mit</strong> Macros <strong>automatisieren</strong> © Thomas Barkow & Knowware Verlag - 14.09.03