vba (visual basic for application) - luis.uni- · pdf filebernd held: das access vba-codebook...
TRANSCRIPT
Regionales Rechenzentrum für Niedersachsen
VBA (Visual Basic for Application)
Einführung
OpenOffice | 12.08.08 | Folie 2Access 2007 – VBA | 23.06.08 | Seite 2
Regionales Rechenzentrum für Niedersachsen
Bücher
Doberenz & Gewinnus: Microsoft Office Access 2007 ProgrammierungMicrosoft Press
Doberenz & Gewinnus: Microsoft Office Access - Programmier-RezepteMicrosoft Press
André Minhorst: Access 2007 – Grundlagen und Praxiswissen für EntwicklerAddision-Wesleyim Web: http://www.access-entwicklerbuch.de/2007/
Bernd Held: Das Access VBA-CodebookAddision-Wesley
Hennig, Cooper, Griffith, Stein: Access 2007 Programmers ReferenceWrox
Helena Feddema: Access 2007 VBA BibleJon Wiley & Sons
OpenOffice | 12.08.08 | Folie 3Access 2007 – VBA | 23.06.08 | Seite 3
Regionales Rechenzentrum für Niedersachsen
Informationen im Internet
... von Microsoft: http://65.55.11.235/en-us/library/bb979619.aspx http://office.microsoft.com/de-ch/access/CH100621381031.aspx
FAQ: http://www.donkarl.com/ http://www.access-o-mania.de/index.php?ind=tipps&op=section_view&idev=2 http://www.mvps.org/access/index.html
Aufgabensammlung, Tutorial: http://www.achim-roehl.de/ACCESS/access.htm http://www.functionx.com/vbaccess/index.htm http://www.kulpa-online.com/tutorial-vba-1.html
Allgemeine Einführung: http://cis.cs.tu-berlin.de/Lehre/SS-01/Sonstiges/dbpra-
pages/ausarbeitungen/vba/a9_vba.pdf
OpenOffice | 12.08.08 | Folie 4Access 2007 – VBA | 23.06.08 | Seite 4
Regionales Rechenzentrum für Niedersachsen
Microsoft Access
... ist Bestandteil der Microsoft Office-Familie. ... ist eine relationale Datenbank. ... ist ein Datenbank-Management-System.
... verwaltet große Mengen von Daten, die in Tabellen gespeichert werden. ... kann Informationen aus verschiedenen Tabellen über einen Schlüssel
miteinander verknüpfen. ... stellt Werkzeuge zur Auswertung, Analyse, Bearbeitung und Präsentation
von Daten bereit. ... kann über das MSDN-AA-Programm bezogen werden.
OpenOffice | 12.08.08 | Folie 5Access 2007 – VBA | 23.06.08 | Seite 5
Regionales Rechenzentrum für Niedersachsen
Nutzung eines Datenbank-Management-Systems
Datenbank-Management-
System
Datenbank
Datenbank
Datenbank
Programm
Benutzer
Web
OpenOffice | 12.08.08 | Folie 6Access 2007 – VBA | 23.06.08 | Seite 6
Regionales Rechenzentrum für Niedersachsen
Aufgaben eines Datenbank-Managementsystem
Schnittstelle zwischen Mensch und Datenbank. Verwaltung großer Mengen von Daten, die in Tabellen gespeichert werden. Erstellung von Abfragen mit Hilfe der Sprache SQL zur Filterung und Verknüpfung
von Daten in verschiedenen Tabellen. Bereitstellung von Werkzeuge zur Auswertung, Analyse, Bearbeitung und
Präsentation von Daten. Automatisierung von Arbeitsschritten mit Hilfe von Makros. Erstellung von individuellen Datenbanken mit Hilfe der VBA-Programmierung.
OpenOffice | 12.08.08 | Folie 7Access 2007 – VBA | 23.06.08 | Seite 7
Regionales Rechenzentrum für Niedersachsen
Eine Datenbank
... ist eine Sammlung von Daten zu einem bestimmten Thema oder einen bestimmten Zweck.
... ermöglicht eine strukturierte Ablage von Informationen. ... kann Arbeitsabläufe eines Unternehmens abbilden. Beispiele:
Adressverwaltung. Sammlung aller Informationen zu CDs oder Büchern. Ablage von Informationen für die Abwicklung von Bestellungen. Abbildung eines Warenlagers.
OpenOffice | 12.08.08 | Folie 8Access 2007 – VBA | 23.06.08 | Seite 8
Regionales Rechenzentrum für Niedersachsen
Relationale Datenbanken
... sind das am weitesten verbreitete Modell. Merkmale:
Die Daten werden in Tabellen abgelegt. Jede Information, die in einer Tabelle abgelegt wird, besitzt den gleichen
Aufbau. Daten in verschiedenen Tabellen können eine Beziehung mit Hilfe von
Schlüsselwerten aufbauen.
OpenOffice | 12.08.08 | Folie 9Access 2007 – VBA | 23.06.08 | Seite 9
Regionales Rechenzentrum für Niedersachsen
Aufbau einer Tabelle (Relation)
IAmtNr Vorname Nachname Straße PLZ Wohnort١٢٣ Heinz Peters Friesenstr. ٤ xxxxx Hannover٤٥٦ Sonja Müller Eichenstr. ٥ xxxxx Hannover٧٥٣ Marlis Schulze Lerchenstr. ٢ xxxxx Mellendorf٧٨٩ Scholz xxxxx Hildesheim
Feldnamen (Attribut)
Datensatz (Tupel)
Datenfeld(Attributwert)
OpenOffice | 12.08.08 | Folie 10Access 2007 – VBA | 23.06.08 | Seite 10
Regionales Rechenzentrum für Niedersachsen
Verknüpfung von Tabellen
Vorname Nachname Straße PLZ Wohnort123 Heinz Peters Hannover456 Müller Hannover753789 Hildesheim
IAmtNrFriesenstr. 4 xxxxx
Sonja Eichenstr. 5 xxxxxMarlis Schulze Lerchenstr. 2 xxxxx Mellendorf
Scholz xxxxx
Student Algorithmen 1 Algebra 1123 1 2 1456 3 4789 2
Theoretische Inf.
Der Student kann eindeutig über dasSchlüsselfeld identifiziert werden.
Der Primärschlüssel wird ...
... in dieser Tabelle als Fremdschlüssel genutzt.
OpenOffice | 12.08.08 | Folie 11Access 2007 – VBA | 23.06.08 | Seite 11
Regionales Rechenzentrum für Niedersachsen
Detailtabelle
Master- und Detailtabellen
Vorname Nachname Straße PLZ Wohnort123 Heinz Peters Hannover456 Müller Hannover753789 Hildesheim
IAmtNrFriesenstr. 4 xxxxx
Sonja Eichenstr. 5 xxxxxMarlis Schulze Lerchenstr. 2 xxxxx Mellendorf
Scholz xxxxx
Student Algorithmen 1 Theoretische Inf. Algebra 1123 1 2 1456 3 4789 2
Mastertabelle
Daten werden in einer anderen Tabelle spezifiziert.
OpenOffice | 12.08.08 | Folie 12Access 2007 – VBA | 23.06.08 | Seite 12
Regionales Rechenzentrum für Niedersachsen
Master- und Detailtabelle
Die Mastertabelle ... enthält alle Hauptdatensätze. ... besitzt einen Primärschlüssel, der die Datensätze eindeutig identifiziert. ... stehen in der Hierarchie oben. Unterhalb von ihnen befinden sich andere
Tabellen. Die Detailtabelle
... beschreibt Besonderheiten oder Eigenschaften eines Elements. ... bildet eine Beziehung zwischen Objektbeschreibungen ab. ... enthalten Fremdschlüssel, die aus einer anderen Tabelle kommen. ... enthalten aber selber ein Primärschlüssel, die die Datensätze eindeutig
identifiziert. ... sind in der Hierarchie anderen Tabellen untergeordnet.
OpenOffice | 12.08.08 | Folie 13Access 2007 – VBA | 23.06.08 | Seite 13
Regionales Rechenzentrum für Niedersachsen
Access
... besteht aus der relationalen Datenbank, die aus den verschiedenen Tabellen besteht.
... bietet Werkzeuge ... wie Abfragen, um Daten aus verschiedenen Tabellen zusammenzufassen. ... wie Formulare, um Daten einzugeben. ... wie Berichte, um Daten auszudrucken.
OpenOffice | 12.08.08 | Folie 14Access 2007 – VBA | 23.06.08 | Seite 14
Regionales Rechenzentrum für Niedersachsen
Abfragen
... basieren auf ein oder mehrere Tabellen. ... können auf dem Ergebnis einer anderen Abfrage basieren. ... geben auf konkrete Fragen eine Antwort. Zum Beispiel:
Welche Waren sind lieferbar? Welche Waren werden von Lieferant XYZ im nächsten Monat angeliefert? Welcher Student studiert welche Studienfächer?
... stellen eine bestimmte Sicht auf die Daten dar. Zum Beispiel: Im wöchentlichen Rhythmus ruft der Lagerist eine Abfrage auf, die ihm alle
Waren anzeigt, die bestellt werden müssen. Die Geschäftsleitung bekommt Informationen geliefert, wie oft welches Produkt
aus dem Lager bestellt wurde. ... werten immer die aktuellen Daten aus. Das Ergebnis einer Abfrage wird immer in einer temporäre Tabelle
dargestellt. Diese temporäre Tabelle wird als Dynaset bezeichnet. Das Dynaset bildet einen Ausschnitt der Daten ab.
... werden intern als SQL-Anweisungen gespeichert.
OpenOffice | 12.08.08 | Folie 15Access 2007 – VBA | 23.06.08 | Seite 15
Regionales Rechenzentrum für Niedersachsen
Beispiel
ID Artikel Beschreibung Verpackung1 1 schwarz 5 Stück2 1 blau 1 Stück3 2 100 Stück4 4 aus Altpapier 100 Blatt
Read / Write
ID Artikelart12 CD3 Kopierpapier4 Druckpapier
Druckerpatrone
SELECTArtikelart, Beschreibung, VerpackungFROM ...INNER JOIN ...ON Artikel = ID WHEREArtikelart LIKE "Druckerpatrone"
Artikel Beschreibung Verpackungschwarz 5 Stück
blau 1 StückDruckerpatroneDruckerpatrone
OpenOffice | 12.08.08 | Folie 16Access 2007 – VBA | 23.06.08 | Seite 16
Regionales Rechenzentrum für Niedersachsen
Formulare
... haben folgende Aufgaben: Informationen zu einem bestimmten Thema zu sammeln. Datensätze werden in einer standardisierten Form erfasst und verändert. Informationen nach bestimmten Kriterien filtern und anzeigen. Bereitstellung einer Eingabemaske für die Erfassung von Daten in
Abhängigkeit des Benutzers und der Aufgabe. ... bestehen aus Textfeldern, Einfach- und Mehrfach-Auswahlfeldern sowie
Schaltflächen. ... nutzen als Grundlage immer eine Tabelle oder Abfrage. ... können mit Hilfe von VBA zur Laufzeit manipuliert werden.
OpenOffice | 12.08.08 | Folie 17Access 2007 – VBA | 23.06.08 | Seite 17
Regionales Rechenzentrum für Niedersachsen
Berichte
... haben folgende Aufgaben: Ausdruck von Informationen in Listenform. Präsentation von Daten mit Hilfe von Diagrammen etc. Serien- und Etikettendruck.
... bestehen aus Bezeichnungsfeldern und Textfeldern. Die dargestellten Daten
... können vom Nutzer nicht verändert werden. ... können berechnet werden. ... können nach bestimmten Kriterien sortiert und gruppiert werden.
... nutzen als Grundlage immer eine Tabelle oder Abfrage. ... mit Hilfe von VBA automatisiert geöffnet und ausgedruckt werden.
OpenOffice | 12.08.08 | Folie 18Access 2007 – VBA | 23.06.08 | Seite 18
Regionales Rechenzentrum für Niedersachsen
VBA (Visual Basic for Application)
... ist speziell für die Programmierung in Office-Anwendungen (Word, Access, PowerPoint, Outlook) entwickelt wurden.
... ist an Visual Basic angelehnt. Merkmale:
VBA-Programme laufen nur innerhalb einer Office-Anwendung. In welcher Office-Anwendung der Code läuft, ist dem Programm unbekannt. Die Anwendungen werden als Objektmodelle implementiert. Strukturierte, prozedurale Programmierung.
OpenOffice | 12.08.08 | Folie 19Access 2007 – VBA | 23.06.08 | Seite 19
Regionales Rechenzentrum für Niedersachsen
Die Programmierung wird genutzt, um
... Formulare, Berichte und Steuerelemente zu gestalten. Beispiele: Fehlerhafte Eingaben werden rot markiert. In Abhängigkeit einer Auswahl werden Steuerelemente ein- oder ausgeblendet.
... auf Benutzeraktionen zu reagieren. Beispiele Der Benutzer klickt auf eine Schaltfläche. Es wird ein Ereignis (Aktion)
"Mausklick" ausgelöst und der passende Bericht wird geöffnet. Der Benutzer gibt über die Tastatur ein Zeichen ein. Sobald die Taste gedrückt
wird, wird das Zeichen auf Korrektheit überprüft. Daten
... für die Anzeige in Formularen oder Berichten zu filtern. ... auf Plausibilität zu prüfen. Falls ein Fehler auftritt, wird eine Meldung an den
Benutzer ausgegeben. ... in Steuerelementen neu zu berechnen oder automatisch zu ergänzen. ... automatisch zu aktualisieren oder zu speichern.
... um andere Objektmodelle (Word etc.) zu integrieren. ... um Berechnungen mit Hilfe von vordefinierten Funktionen auszuführen.
OpenOffice | 12.08.08 | Folie 20Access 2007 – VBA | 23.06.08 | Seite 20
Regionales Rechenzentrum für Niedersachsen
VBA-Programme erstellen
Programm in VBA werden in einer Entwicklungsumgebung geschrieben, die jede Office-Anwendung bereitstellt.
Die Entwicklungsumgebung ... ist ein eigenständiges Programm. Der Titel wird in der Taskleiste von
Windows angezeigt. ... kann aber nur über eine Office-Anwendung geöffnet werden. .. besteht aus vielen kleinen Fenstern mit den verschiedensten Aufgaben.
OpenOffice | 12.08.08 | Folie 21Access 2007 – VBA | 23.06.08 | Seite 21
Regionales Rechenzentrum für Niedersachsen
VBA-Entwicklungsumgebung öffnen
Ribbon Datenbanktools, Kategorie Makro. Klick auf das Icon Visual Basic.
Ribbon Erstellen, Kategorie Andere. Klicke auf das Icon Modul oder Klassenmodul. Es wird die Entwicklungsumgebung geöffnet und ein neues Modul angelegt und angezeigt.
... über ein Formular oder Bericht: Voraussetzung: Das Formular oder Bericht werden in der Entwurfsansicht
dargestellt. Das Formular oder Bericht selber wird ausgewählt. Andere Möglichkeit:
Ein Steuerelement auf dem Formular oder Bericht werden ausgewählt. Im Eigenschaftenfenster wird die Registerkarte Ereignis aktiviert. Dort wird ein Ereignis ausgewählt und der Wert Ereignisprozedur aus dem
Kombinationsfeld ausgewählt. Die Entwicklungsumgebung sowie die ausgewählte Ereignisprozedur
werden angezeigt.
OpenOffice | 12.08.08 | Folie 22Access 2007 – VBA | 23.06.08 | Seite 22
Regionales Rechenzentrum für Niedersachsen
VBA-Entwicklungsumgebung schließen
Schließen-Schaltfläche in der Titelleiste. Datei – Schließen und zurück zu Microsoft Office [Anwendung] oder
<ALT>-<Q> Ansicht - Microsoft Office [Anwendung] oder <ALT>-<F11>
verschiebt nur den VBA-Editor in den Hintergrund und holt die dazugehörige Office-Anwendung in den Vordergrund.
OpenOffice | 12.08.08 | Folie 23Access 2007 – VBA | 23.06.08 | Seite 23
Regionales Rechenzentrum für Niedersachsen
Aufbau des Editors
Menü-leiste
Titelleiste
Symbolleiste
Codefenster
Projekt-Explorer
Eigen-schaften-Fenster
OpenOffice | 12.08.08 | Folie 24Access 2007 – VBA | 23.06.08 | Seite 24
Regionales Rechenzentrum für Niedersachsen
Titelleiste
Mit Hilfe des Icons am rechten Rand wird das Systemmenü geöffnet. Das Systemmenü enthält Befehle zum Vergrößern und Verkleinern sowie Schließen des Editors.
Als Titel wird der Name der Datenbank und in eckigen Klammern der Name des sichtbaren Codes angezeigt.
Am linken Rand befinden sich die Schaltflächen zum Minimieren, Verkleinern und Schließen des Editors.
OpenOffice | 12.08.08 | Folie 25Access 2007 – VBA | 23.06.08 | Seite 25
Regionales Rechenzentrum für Niedersachsen
Menüleiste
Das Icon am rechten Rand enthält die gleichen Befehle wie das Systemmenü in der Titelleiste.
Datei enthält Befehle zum Speichern, Exportieren usw. von Code. Bearbeiten enthält Befehle zum Durchsuchen, Einrücken usw. von Code
sowie Hilfestellungen für einzelne Codeelemente. Ansicht enthält Befehle zum Anzeigen von verschiedenen Elementen des
Editors. Einfügen erzeugt neue Module oder Prozeduren. Debuggen kompiliert den Code und bietet Hilfen, um Fehler zu finden. Ausführen startet das Programm. Extras enthält Verweise und Optionen des VBA-Editors sowie der
Datenbank. Add-Ins verbindet vorgefertigte Programme mit dem eigenen Code. Fenster richtet die Elemente innerhalb des Editors aus.
OpenOffice | 12.08.08 | Folie 26Access 2007 – VBA | 23.06.08 | Seite 26
Regionales Rechenzentrum für Niedersachsen
Symbolleiste
Wichtige Befehle werden in Symbolform dargestellt.
Voreinstellungen enthält die wichtigsten Befehle wie Speichern etc.
Es können die Symbolleisten Debuggen und Bearbeiten eingeblendet werden.
UserForm für die Entwicklung von Formularen wird in Access nicht benötigt.
OpenOffice | 12.08.08 | Folie 27Access 2007 – VBA | 23.06.08 | Seite 27
Regionales Rechenzentrum für Niedersachsen
Projekt-Explorer
... gibt einen Überblick über die programmierten Komponenten einer Datenbank.
... ist die Schaltzentrale eines VBA-Projekts. ... erleichtert die Navigation innerhalb eines Projekts. ... ist frei platzierbar. ... enthält alle zu dem Projekt gehörenden Elemente, die Programmcode
enthalten.
OpenOffice | 12.08.08 | Folie 28Access 2007 – VBA | 23.06.08 | Seite 28
Regionales Rechenzentrum für Niedersachsen
Aufbau
Welches Datenbank-Projekt wird abgebildet?
Anzeige aller Elemente oder sortiert nach Kategorien mit Hilfe von Ordnern.
Anzeige aller Module eines Projekts.
Code passend zum Element anzeigen.
Objekt (Formular etc.) in Access passend zur Auswahl anzeigen.
OpenOffice | 12.08.08 | Folie 29Access 2007 – VBA | 23.06.08 | Seite 29
Regionales Rechenzentrum für Niedersachsen
Anzeige der Elemente
Die Elemente werden in einer hierarchischen Struktur abgelegt. Als Wurzel wird immer der Name der Datenbank angezeigt. Die verschiedenen Arten von Modulen bilden die Ordner des Windows
Explorers. Die Module selber entsprechen den Dateien in einem Ordner.
OpenOffice | 12.08.08 | Folie 30Access 2007 – VBA | 23.06.08 | Seite 30
Regionales Rechenzentrum für Niedersachsen
Projekte in VBA
... sind der äußere Rahmen für ein VBA-Programm. ... werden automatisch von einer Office-Anwendung angelegt. ... können nicht vom Entwickler angelegt werden. ... werden gemeinsam mit der Datenbank in einer Datei gespeichert.
OpenOffice | 12.08.08 | Folie 31Access 2007 – VBA | 23.06.08 | Seite 31
Regionales Rechenzentrum für Niedersachsen
Standardmodule
... enthalten Code, der nicht an ein Formular, Bericht oder Steuerelement gebunden ist.
... sind nicht an ein bestimmtes Objekt gebunden. ... enthalten häufig Code, der innerhalb des
gesamten Projekts von vielen Elementen genutzt wird.
... bekommen die Dateiendung ".bas". ... erstellen:
Menü Einfügen – Modul im VBA-Editor. Ribbon Erstellen; Kategorie Andere, Symbol Neues
Objekt: Modul in Access.
OpenOffice | 12.08.08 | Folie 32Access 2007 – VBA | 23.06.08 | Seite 32
Regionales Rechenzentrum für Niedersachsen
Klassenmodule
... fassen Objekte in Kategorien zusammen. ... fassen Objekte mit den gleichen Eigenschaften
und Methoden zusammen. ... stellen Baupläne für konkrete Objekte dar. ... bieten eine Schablone für bestimmte Kategorien
von Objekten. ... können mit einen Formular, Bericht oder
Steuerelement automatisch erstellt werden. ... bekommen die Dateiendung ".cls".
OpenOffice | 12.08.08 | Folie 33Access 2007 – VBA | 23.06.08 | Seite 33
Regionales Rechenzentrum für Niedersachsen
Klassenmodule erstellen
Benutzerdefinierte Klassenmodulen: Menü Einfügen – Klassenmodul im VBA-Editor. Ribbon Erstellen; Kategorie Andere, Symbol Neues Objekt: Klassenmodul in
Access. Der VBA-Editor öffnet sich automatisch. Klassenmodule in Abhängigkeit eines Formulars etc.:
Das Formular oder Bericht ist in der Entwurfsansicht geöffnet. Ein Formular, Bericht oder Steuerelement wird ausgewählt und das
Eigenschaftenfenster geöffnet. Die Registerkarte Ereignis wird aktiviert. Klicken Sie in das Feld eines bestimmten Ereignisses und wählen den Eintrag
Ereignisprozedur aus.
OpenOffice | 12.08.08 | Folie 34Access 2007 – VBA | 23.06.08 | Seite 34
Regionales Rechenzentrum für Niedersachsen
Eigenschaften-Fenster
... zeigt die Merkmale des aktiven Moduls an. Module fassen Code zu einem bestimmten Thema oder Objekt zusammen.
Der Name des Moduls wird immer angezeigt. Die Darstellung der Eigenschaften ist abhängig vom ausgewählten
Element im Projekt-Explorer.
OpenOffice | 12.08.08 | Folie 35Access 2007 – VBA | 23.06.08 | Seite 35
Regionales Rechenzentrum für Niedersachsen
Code-Fenster
... zeigt ein Programm in VBA an. ... zeigt Befehle und Anweisungen an, die eine bestimmte Aufgabe lösen. Jedes Modul wird in einem eigenen Code-Fenster geöffnet. Passend zum aktiven Element im Projekt-Explorer wird der Code
angezeigt. ... ist vergleichbar mit einem Editor. Der Code wird mit Hilfe der Tastatur
eingegeben und bearbeitet.
OpenOffice | 12.08.08 | Folie 36Access 2007 – VBA | 23.06.08 | Seite 36
Regionales Rechenzentrum für Niedersachsen
Anweisungen, Prozeduren und Module
Pro Zeile steht eine Anweisung. In diesem Beispiel wird der Focus auf ein bestimmtes Element gesetzt. Pro Zeile wird eine bestimmte Aktion beschrieben.
Die Anweisungen werden in einer Prozedur zusammengefasst. Jede Prozedur löst eine bestimmte Aufgabe. Hier wird auf das Laden eines Formulars reagiert.
Die Prozeduren werden zu Modulen zusammengefasst. Alle gemeinsam lösen sie ein größeres Problem.
OpenOffice | | Folie 37Access 2007 – VBA | 23.06.08 | Seite 37
Regionales Rechenzentrum für Niedersachsen
Programme und deren Sprache
Ein Computerprogramm setzt Anweisungen in eine Form um, die von einem Computer verarbeitet werden können.
Der Begriff Programm ... wird für einen Text genutzt, der in einer Programmiersprache abgefasst ist.
Dieser Text wird als Quelltext bezeichnet und kann von einem Menschen gelesen werden. Dieser Text befindet sich im Code-Fenster
... wird für den von einem Computer ausführbaren Maschinencode verwendet. Um aus dem Quelltext einen Maschinencode zu genieren, muss dieser übersetzt (kompiliert) werden. Der Maschinencode selber ist für einen Menschen nicht lesbar.
Eine Programmiersprache ... besteht aus Wörtern, Zeichen etc. ... hat wie jede menschliche Sprache eine Syntax.
In diesem Kurs werden Computerprogramme mit Hilfe der Sprache VBA geschrieben.
OpenOffice | | Folie 38Access 2007 – VBA | 23.06.08 | Seite 38
Regionales Rechenzentrum für Niedersachsen
Strukturierte und prozedurale Programmierung
Strukturierte Programmierung: Verzicht auf goto-Anweisungen. Mit Hilfe von Kontrollstrukturen (Schleifen etc.) wird der Ablauf eines
Programms in Abhängigkeit einer Bedingung verändert werden. Das Programm hat einen definierten Anfang und ein definiertes Ende.
Prozedurale Programmierung: Programme werden in Teilaufgaben zerlegt. Die Teilaufgaben werden mit Hilfe von Prozeduren oder Funktionen im
Programm abgebildet. Prozeduren fassen genauso wie Funktionen Anweisungen zusammen, die ein bestimmtes Problem lösen. Funktionen geben aber im Gegensatz zur Prozedur kein Wert an den Aufrufer zurück.
K01_programmierung.accdb:Die Anweisungen in dem Modul Grundrechenarten – Addition werden von oben nach unten abgearbeitet.Für jede Grundrechenart wird eine Prozedur angelegt..
OpenOffice | | Folie 39Access 2007 – VBA | 23.06.08 | Seite 39
Regionales Rechenzentrum für Niedersachsen
Modulare und objektorientierte Programmierung
Modulare Programmierung: Ein Programm wird in viele kleine Teilaufgaben zerlegt. Die verschiedenen
Teilaufgaben werden zu verschiedenen Oberbegriffen in Modulen zusammengefasst.
Jedes Modul und damit die darin abgebildete Aufgabe sind selbstständig. Das heißt, jedes Modul kann von verschiedenen Personen programmiert und getestet werden.
Die Module selber können wieder zu einem Projekt zusammengefasst werden. Voraussetzung: Die Schnittstellen für die Verknüpfung sind bekannt.
Objektorientierte Programmierung: ... nutzt Objekte, die über bestimmte Eigenschaften und Funktionen
verfügen.
K01_programmierung.accdb:Für jede Grundrechenart wird eine Prozedur angelegt..Die verschiedenen Arten werden in einem Modul zusammengefasst.Mit Hilfe des Buttons in einem Formular wird eine Addition ausgeführt.
OpenOffice | 12.08.08 | Folie 40Access 2007 – VBA | 23.06.08 | Seite 40
Regionales Rechenzentrum für Niedersachsen
Objekte
... stellen eine Abstraktion eines realen Gegenstandes dar. ... sind Formulare, Berichte oder Steuerelemente in einer Access-
Datenbank. ... haben bestimmte Eigenschaften (Attribute). Zum Beispiel die Breite und
Höhe eines Formulars. ... besitzen Methoden, die die Ausprägung der Eigenschaft verändern.
Zum Beispiel die Größe eines Formulars wird mit Hilfe von VBA verändert. ... können auf Benutzeraktionen reagieren. Zum Beispiel: Was passiert,
wenn die Größe eines Formulars verändert wird? ... mit den gleichen Eigenschaften und Methoden werden zu Klassen
zusammengefasst. Klassen sind Vorlagen für Objekte.
OpenOffice | 12.08.08 | Folie 41Access 2007 – VBA | 23.06.08 | Seite 41
Regionales Rechenzentrum für Niedersachsen
Objekte auswählen
Hier werden alle Objekte angezeigt. Falls der Code an ein Formular etc. gebunden ist, wird das Formular sowie
die darin enthalten Steuerelemente aufgelistet.Der Eintrag Allgemein listet alle Prozeduren auf, die
keinem Objekt zugeordnet werden können. Prozeduren teilen ein Modul in kleine Einheiten ein.
OpenOffice | 12.08.08 | Folie 42Access 2007 – VBA | 23.06.08 | Seite 42
Regionales Rechenzentrum für Niedersachsen
Prozeduren
... teilen ein Modul (Kapitel) in verschiedene Abschnitte ein. ... fassen Anweisungen zu einem Block zusammen, der eine bestimmte
Aufgabe löst. Die Anweisungen innerhalb der Prozedur werden zeilenweise abgearbeitet.
... sind eine Abfolge von VBA-Befehlen und -Anweisungen, die ein bestimmtes eng begrenztes Problem lösen.
... können einen Wert zurückgeben und werden dann als Funktionen bezeichnet.
... reagieren auf eine Benutzeraktion (Ereignis) und werden dann als Event-Handler (Ereignis-Prozedur) bezeichnet.
OpenOffice | 12.08.08 | Folie 43Access 2007 – VBA | 23.06.08 | Seite 43
Regionales Rechenzentrum für Niedersachsen
Prozeduren auswählen
In Abhängigkeit des gewählten Objekts werden hier die Prozeduren angezeigt. Falls als Objekt ein Formular oder
Steuerelement ausgewählt wurde, werden hier alle dazugehörigen Ereignisse angezeigt.
Der Eintrag Deklaration sammelt alle Definitionen, die nicht eindeutig einem bestimmten Objekt zugeordnet
werden können.
OpenOffice | 12.08.08 | Folie 44Access 2007 – VBA | 23.06.08 | Seite 44
Regionales Rechenzentrum für Niedersachsen
Anzeige der Prozeduren
Der Inhalt des gesamten Moduls wird in dem Code-Fenster angezeigt. Prozeduren und
Definitionen werden mit Hilfe einer Linie getrennt.
Es wird immer nur eine Prozedur angezeigt. Die
Prozeduren werden in Abhängigkeit des Objekts mit Hilfe des Kombinationsfeld am oberen, rechten Rand
ausgewählt.
OpenOffice | 12.08.08 | Folie 45Access 2007 – VBA | 23.06.08 | Seite 45
Regionales Rechenzentrum für Niedersachsen
Code in ein Standardmodul schreiben
Das Ribbon Erstellen liegt im Vordergrund und ist aktiv. In der Kategorie Andere wird auf das Symbol Neues Objekt: Modul
geklickt. Ändern Sie den Namen des Moduls über das Eigenschaftenfenster im
VBA-Editor. Setzen Sie die Einfügemarke in die erste freie Zeile und geben folgenden
Code ein:
Sub PfadErmitteln() Dim pfad As String pfad = Application.CurrentProject.PathEnd Sub
OpenOffice | 12.08.08 | Folie 46Access 2007 – VBA | 23.06.08 | Seite 46
Regionales Rechenzentrum für Niedersachsen
Reaktion auf ein Ereignis
Das Formular frmStart wird in der Entwurfsansicht geöffnet. Das Formular wird ausgewählt und das passende Eigenschaftenfenster
geöffnet. Die Registerkarte Ereignis wird aktiviert. Für das Ereignis Bei Laden wird
aus dem Kombinationsfeld der Eintrag Ereignisprozedur ausgewählt. Die Ereignis-Prozedur Private Sub Form_Load()wird automatisch
angelegt und in der Entwicklungsumgebung angezeigt. Setzen Sie die Einfügemarke zwischen die Zeilen Private Sub ... und End Sub, um den Code für die Ereignis-Prozedur einzugeben.
txtBenutzer.TextAlign = 1 txtBenutzer.Value = "Bestellung" txtPasswort.InputMask = "Password" txtPasswort.SetFocus
OpenOffice | 12.08.08 | Folie 47Access 2007 – VBA | 23.06.08 | Seite 47
Regionales Rechenzentrum für Niedersachsen
Code speichern
Mit Hilfe von Datei – [datenbank] speichern wird der Code in der Datenbank gespeichert.
Falls Sie mehr als ein Modul nicht gespeichert ist, wird folgendes Fenster eingeblendet:
Alle farbig markierten Elemente werden mit Hilfe der Schaltfläche Ja gespeichert. Mit Hilfe eines Mausklicks kann die Markierung für die einzelnen Elemente entfernt werden.
OpenOffice | 12.08.08 | Folie 48Access 2007 – VBA | 23.06.08 | Seite 48
Regionales Rechenzentrum für Niedersachsen
Code in einem Standardmodul ausführen
Setzen Sie die Einfügemarke in die auszuführende Prozedur. Die Einfügemarke befindet sich zwischen Sub ... und End Sub.
Drücken Sie <F5>. Die Prozedur wird vollständig durchlaufen. Andere Möglichkeiten:
Das grüne Dreieck in der Symbolleiste Debuggen führt die Prozedur aus. Das blaue Rechteck beendet die Ausführung.
Aus dem Menü Ausführen wird der entsprechende Eintrag ausgewählt. Rechts von den Einträgen befinden sich die gleichen Symbole wie in der Symbolleiste Debuggen.
OpenOffice | 12.08.08 | Folie 49Access 2007 – VBA | 23.06.08 | Seite 49
Regionales Rechenzentrum für Niedersachsen
Ereignis-Prozedur ausführen
Öffnen Sie das Formular in der Formularansicht. Lösen Sie das zu überprüfende Ereignis aus. Der Event-Handler wird
automatisch durchlaufen. Zum Beispiel:
Form_Load wird ausgelöst, wenn das Formular geöffnet wird. Button_Click wird ausgelöst, wenn der Nutzer auf die Schaltfläche mit der
Maus klickt. Textbox_KeyPress wird ausgelöst, wenn die Textbox aktiv ist und der Nutzer
eine Taste drückt, aber noch nicht losgelassen hat.
OpenOffice | 12.08.08 | Folie 50Access 2007 – VBA | 23.06.08 | Seite 50
Regionales Rechenzentrum für Niedersachsen
Nicht ausführbarer Code
Falls ein Programm nicht gestartet werden kann, wird häufig folgende Warnmeldung eingeblendet:
Aktivieren oder deaktivieren der Statusleiste: Klicken Sie auf den Office-Button und anschließend auf Access-Optionen. Wählen Sie die Kategorie Vertrauensstellungscenter aus und klicken auf die
Schaltfläche Einstellungen für das Vertrauensstellungscenter. Wählen Sie die Kategorie Statusleiste aus und aktivieren die gewünschte
Option.
OpenOffice | 12.08.08 | Folie 51Access 2007 – VBA | 23.06.08 | Seite 51
Regionales Rechenzentrum für Niedersachsen
Sicherheitswarnung öffnen
Klicken Sie auf die Schaltfläche Optionen in der Statusleiste, um die Sicherheitswarnung anzuzeigen.
Aktivieren Sie die Option Diesen Inhalt aktivieren, um die Blockade des Codes aufzuheben.
Schließen Sie das Fenster mit OK.
OpenOffice | 12.08.08 | Folie 52Access 2007 – VBA | 23.06.08 | Seite 52
Regionales Rechenzentrum für Niedersachsen
Sicherheitseinstellungen
Klicken Sie auf die Schaltfläche Office. Anschließend klicken Sie die Schaltfläche Access-Optionen. Wählen Sie die Kategorie Vertrauensstellungscenter aus. Klicken Sie dort auf die Schaltfläche Einstellungen für
Vertrauensstellungscenter. Folgende Möglichkeiten sind in dem Center gebündelt:
Vertrauenswürdige Herausgeber und Speicherorte festlegen. Unter welchen Bedingungen werden Add-Ins und Makros werden gestartet?
Add-Ins sind zu installierende Module, die den Funktionsumfang einer Anwendung erweitern. Makros automatisieren Arbeitsschritte in Access.
Wird die Statusleiste für die Sicherheitswarnungen eingeblendet? Datenschutzoptionen für die Kommunikation mit Microsoft.
OpenOffice | 12.08.08 | Folie 53Access 2007 – VBA | 23.06.08 | Seite 53
Regionales Rechenzentrum für Niedersachsen
Makros aktivieren
Wählen Sie im Vertrauensstellungscenter die Kategorie Einstellungen für Makros aus.
Standardmäßig werden Makros deaktiviert. Der Nutzer bekommt ein Hinweise, dass Makros vorhanden sind und kann sie anschließend aktivieren.
OpenOffice | 12.08.08 | Folie 54Access 2007 – VBA | 23.06.08 | Seite 54
Regionales Rechenzentrum für Niedersachsen
Vertrauenswürdige Speicherorte
Wählen Sie im Vertrauensstellungscenter die Kategorie Vertrauenswürdige Speicherorte aus.
Mit Hilfe der Schaltfläche Neue Speicherorte hinzufügen kann der Speicherort für eine vertrauenswürdige Datenbank angefügt werden.
OpenOffice | 12.08.08 | Folie 55Access 2007 – VBA | 23.06.08 | Seite 55
Regionales Rechenzentrum für Niedersachsen
Optionen für den VBA-Editor
Öffnen Sie das Menü Extras – Optionen. Die Registerkarte Editor ist eine Sammlung von Einstellungen, die den
Code sowie das Fenster betreffen. Die Registerkarte Editorformat formatiert die verschiedenen Code-
Anweisungen. Die Registerkarte Allgemein bietet Einstellungen
... für das Raster. ... für die Behandlung von Fehlern. ... für die Art der Kompilierung.
Die Registerkarte Verankerung verankert die Fenster innerhalb des Editors.
OpenOffice | 12.08.08 | Folie 56Access 2007 – VBA | 23.06.08 | Seite 56
Regionales Rechenzentrum für Niedersachsen
Editor-Einstellungen
Mit Hilfe der Option Automatische Syntaxüberprüfung werden Fehler in der Syntax nach Verlassen einer Zeile farbig angezeigt.
Variablendeklaration erforderlich setzt am Anfang eines Moduls die Anweisung Option Explicit automatisch. Eine Variable innerhalb einer Prozedur muss deklariert werden und kann nicht ein zweites Mal vorkommen.
Automatische Quickinfos zeigt gelbe Erklärfenster während der Eingabe von Funktionen etc. an.
OpenOffice | 12.08.08 | Folie 57Access 2007 – VBA | 23.06.08 | Seite 57
Regionales Rechenzentrum für Niedersachsen
Editorformat
In der Liste werden die verschiedenen Elemente des Codefensters angezeigt.
Die Schriftart und Schriftgröße kann für jedes Element eingestellt werden.
OpenOffice | 12.08.08 | Folie 58Access 2007 – VBA | 23.06.08 | Seite 58
Regionales Rechenzentrum für Niedersachsen
Objekte und Bibliotheken
Word, Access etc. sind Objekte. Diese bestehen wieder aus verschiedenen Objekten wie zum Beispiel Dokument, Formular und so weiter.
Alle Objekte zu einem Thema werden in einer Bibliothek gesammelt. Eine Bibliothek enthält vorgefertigte Prozeduren, die von anderen
Programmen abgerufen werden können. Mit Hilfe von Extras – Verweise werden die vorgefertigten Bibliotheken
einem Programm zur Verfügung gestellt.
OpenOffice | 12.08.08 | Folie 59Access 2007 – VBA | 23.06.08 | Seite 59
Regionales Rechenzentrum für Niedersachsen
Verweise
... enthalten den Pfad zu einer Bibliothek.
Alle vorhandenen Verweise werden in der Liste gesammelt.
Mit Hilfe der Pfeiltasten kann die Liste durchlaufen werden. Das aktive Element ist farbig markiert und der Pfad wird unterhalb der Liste angezeigt.
Wenn ein Häkchen in dem Kontrollkästchen vorhanden ist, können die Funktionen in der Bibliothek, auf die verwiesen wird, genutzt werden.
Mit Hilfe der Priorität kann die Reihenfolge der Elemente verändert werden.
OpenOffice | 12.08.08 | Folie 60Access 2007 – VBA | 23.06.08 | Seite 60
Regionales Rechenzentrum für Niedersachsen
Aktive Verweise in Access
Visual Basic for Application C:\Programme\Gemeinsame Dateien\Microsoft Shared\vba\vba6\vbe6.dll ... definiert die Programmiersprache VBA.
Microsoft Access 12.0 Object Library C:\Programme\Microsoft Office\Office12\msacc.dll ... ist ein Verweis auf das Objektmodell von Access.
Microsoft Office 12.0 Access database engine Object Library C:\Programme\Microsoft Office\Office12\acedao.dll ... ersetzt die Microsoft DAO 3.x Object Library. ... stellt eine Verbindung zu Daten in Tabellen und Abfragen her.
OLE Automation C:\Windows\System32\stdole.tbl O(bject) L(inking) E(mbedding) ... ermöglicht das Bearbeiten von fremden Daten wie zum Beispiel von Bildern
in einer anderen Anwendung. ...ermöglicht die Nutzung eines Objektmodells aus einer anderen Anwendung.