23.11.2013 Aufrufe

Access mit Makros automatisieren - HomePages für Einsteiger ...

Access mit Makros automatisieren - HomePages für Einsteiger ...

Access mit Makros automatisieren - HomePages für Einsteiger ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!