Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Visual Basic für Applikationen (VBA) 1. Einführung in Objektorientiertheit, Pogrammierung in Access und Zugriff auf Steuerelemente 2. Zugriff auf Datenelemente,

Ähnliche Präsentationen


Präsentation zum Thema: "Visual Basic für Applikationen (VBA) 1. Einführung in Objektorientiertheit, Pogrammierung in Access und Zugriff auf Steuerelemente 2. Zugriff auf Datenelemente,"—  Präsentation transkript:

1 Visual Basic für Applikationen (VBA) 1. Einführung in Objektorientiertheit, Pogrammierung in Access und Zugriff auf Steuerelemente 2. Zugriff auf Datenelemente, Fehlerbehandlung, Startoptionen Nils Ohlmeier, Joos-Hendrik Böse

2 Visual-Basic Einleitung Entwicklung von Basic Entwickelt 1963 am Dartmouth College als interpretierende Sprache zur anschaulichen Vermittlung von Programmierkonzepten kommt mit QuickBASIC von Microsoft eine kompilierende völlig überarbeitet Version von Basic auf den Markt, die Unterprogramme und strukturierte Datentypen kannte.

3 Visual-Basic Einleitung Heutiger Entwicklungsstand von Basic Objektorientierte Entwicklungsumgebung zur Erstellung von Windows oder NT Programmen Visual Basic 6.0 (VB) oder Visual Basic für Applikationen (VBA) Einfacher Austausch von Objekten zwischen Microsoft-Anwendungen Einfache Nutzung von Officefunktionen

4 O bjektorientiertes Programmieren Definition: Objekt Ein Objekt ist die Zusammenfassung von Eigenschaften (Daten, Attributen) und zugehörigen Methoden (Elemenfunktionen). Methoden (Funktionen) Eigenschaften (Daten, Attribute) Die Daten beschreiben den Zustand oder die Eigenschaften eines Objekts, die Methoden (Elementfunktionen) enthalten die Operationen zur Manipulation der Daten des Objekts.

5 O bjektorientiertes Programmieren Beispiel: Ein spezifischer Artikel Objekt: Monitor Methoden: Gesamtumsatz anzeigen Werte eingeben Artikel verkaufen Wareneingang Eigenschaften Artikelname: Monitor Artikelnummer: 1 Verkaufspreis: 200 verkaufte Menge: 5 Lagerbestand: 0

6 O bjektorientiertes Programmieren Zugriff auf Objekte Jedes Objekt besitzt einen eindeutigen Zustand, der durch die Werte der Objektvariablen bestimmt ist. Die Objektvariablen können nur durch die Methoden des Objekts verändert werden. Nach außen ist ein Objekt allein über seine Methoden sichtbar (Kapselung). Die Schnittstelle nach außen bilden die öffentlichen Methoden, über die Objekte miteinander kommunizieren bzw. Nachrichten austauschen.

7 O bjektorientiertes Programmieren Beispiel: Im Lager sind 5 Stck Monitore eingetroffen Objekt: Lagerverwalter Zielobjekt Methode Parameter Monitor Wareneingang 5 Objekt: Monitor Methoden : Gesamtumsatz anzeigen Werte eingeben Artikel verkaufen Wareneingang Eigenschaften Artikelname: Monitor Artikelnummer: 1 Verkaufspreis: 200 verkaufte Menge: 5 Lagerbestand: 0

8 O bjektorientiertes Programmieren Klassen Gleichartige Objekte haben gemeinsame Elemente, d.h. gemeinsame Methoden und gemeinsame Objektvariablen. Ihnen liegt der gleiche Bauplan zugrunde, der als Vorlage für die Generierung dieser gleichartigen Objekte dient. Dieser Bauplan wird Klasse genannt. Eine Klasse definiert die Struktur ihrer Objekte. Die Objekte werden auch Instanzen ihrer Klasse genannt.

9 O bjektorientiertes Programmieren Objekt: Monitor Eigenschaften Artikelname: Monitor Artikelnummer: 1 Verkaufspreis: 200 verkaufte Menge: 5 Lagerbestand: 0 Methoden : Gesamtumsatz anzeigen Werte eingeben Artikel verkaufen Wareneingang Objekt: CPU Eigenschaften Artikelname: CPU Artikelnummer: 3 Verkaufspreis: 400 verkaufte Menge: 12 Lagerbestand: 3 Methoden : Gesamtumsatz anzeigen Werte eingeben Artikel verkaufen Wareneingang Klasse Artikel Eigenschaften Artikelname Artikelnummer Verkaufspreis verkaufte Menge Lagerbestand Methoden : Gesamtumsatz anzeigen Werte eingeben Artikel verkaufen Wareneingang

10 Applikation DBEngine Forms Reports DoCmd Screen Errors Workspaces Databases TableDefs IndexesFields QueryDefs ParametersFields RecordSets Fields Relations Fields Containers Documents Connections QueryDefs Recordsets Users Groups Users Access-Objekthierarchie

11 Programmieren in Access Eigenständige Module Klassenmodule (Code behind Forms) Module in Access Für Code der in mehreren Formularen oder Berichten genutzt wird Modul steht der ganzen Datenbank zur Verfügung (globales Modul) Klassenmodule sind Bestandteil eines Formulars oder Berichtes, deshalb werden diese Module auch Code behind Forms genannt Funktionen oder Prozeduren reagieren auf Ereignisse des Formulars oder Berichtes

12 Programmieren in Access Modul Prozedur 1 Funktion 2 Prozedur 3 Funktion 4 Module sind Sammlungen von Prozeduren oder Funktionen für eine bestimmte Datenstruktur.

13 Programmieren in Access Erstellen eines eigenständigen Moduls über Einfügen

14 Programmieren in Access Erstellen eines eigenständigen Moduls über Registrierkarte

15 Programmieren in Access Erstellen eines Klassenmoduls für ein Formular Formular auswählen und in Entwurfsansicht wechseln Formelement auswählen und Eigenschaften anzeigen Ereignis auswählen Modulfenster öffnen Gleiches Vorgehen um Klassenmodule zu bearbeiten

16 Programmieren in Access Das Modulfenster Liste der Steuerelemente, die in dem Formular existieren Liste der schon programmierten Prozeduren Liste der möglichen Ereignisse Deklarationsteil, hier können Options gesetzt werden und Variablen Deklariert werden die im ganzen Modul gelten sollen.

17 Programmieren in Access Einfügen von Prozeduren und Funktionen in ein Modul Erscheint nur während eines geöffneten Modulfensters. Um Funktionen in ein Modul einzufügen, welche z.B. von anderen Prozeduren benutzt werden sollen. Kann man den Dialog Einfügen - Prozedur benutzten. Man kann das Modul auch komplett von Hand editieren, ohne die Dialoge zu nutzen.

18 Programmieren in Access Definition von Sub-Prozeduren und Funktionen in VBA Sub-Prozeduren [ Private | Public ] Sub Name [(ArgListe)] [Anweisungen] [Exit Sub] [Anweisungen] End Sub Funktionen [ Private | Public ] Funktion Name [(ArgListe)] [As Typ] [Anweisungen] [Exit Sub] [Anweisungen] End Sub Private und Public beschreiben den Gültigkeitsbereich der Prozedur. Prozeduren sind Standardmäßig öffentlich, in CBF Prozeduren wird automatisch ein Privat vor die Prozedur gesetzt Für den Gültigkeitsbereich gilt für Funktionen dasselbe wie für Prozeduren. Es muß aber der Rückgabetyp der Funktion deklariert werden.

19 Programmieren in Access Definition von Sub-Prozeduren und Funktionen in VBA per Dialog public | privat Als statisch deklarierte Variablen behalten ihren Wert auch nach Abschluß der Prozedur

20 Programmieren in Access Deklaration von Variablen in VBA Explizite VariablendeklarationImplizite Variablendeklaration Dim Name As Datentyp Dim -Anweisung nicht notwendig, Variablen werden durch ihre Verwendung direkt deklariert Dim intFaktor As IntegerintFaktor = intklein + 2

21 Programmieren in Access Datentypen in VBA Byte Byte Integer Bytes Long Integer bis4 Bytes SingleFließk. 8 Stellen4 Bytes DoubleFließk. 16 Stellen8 Bytes CurrencyFestkomma 15 Vor8 Bytes 4 Nachkommastellen BooleanTrue / False2 Bytes Date bis 8 Bytes Object Objektvariable StringText var. Länge10 Bytes + Variant (mit Zahlen)Numerische Werte16 Bytes Variant (mit Zeichen)22 Bytes + Benutzerdefiniert(Type)

22 Programmieren in Access Variablen in VBA Variablennamen sollten entsprechend der Reddick VBA Namenskonventionen vergeben werden, wobei die ersten drei Zeichen des Namens immer auf den Datentyp schließen lassen sollen. TagObject Type bool {f}Boolean byte {byt}Byte curCurrency date {dtm}Date decDecimal dblDouble intInteger lngLong objObject sngSingle strString stfString (fixed length) varVariant Beispiel: Dim lngCount As Long Dim intValue As Integer Dim strInput As String

23 Programmieren in Access Deklaration von Konstanten in VBA [Public | Privat] Const Name As Datentyp

24 Programmieren in Access Ein und Ausgabedialoge Die Funktion Eingabedialoge ( InputBox ) stellt ein Dialogfenster dar, und gibt den eingegebenen Wert zurück Rückgabewert = InputBox (Text, Titel, Vorgabe)

25 Programmieren in Access Ein und Ausgabedialoge Private Sub Name_Click() Dim Name As String Name = InputBox("Gib sofort deinen Namen ein !!", "Eingabedialog", "Heinz") End Sub

26 Programmieren in Access Ausgabedialog (MsgBox) Rückgabewert= MsgBox (Text,Schaltflächen,Titel) MsgBox Text, Schaltflächen, Titel

27 Private Sub Befehl10_Click() Dim Name As String Name = InputBox("Gib sofort deinen Namen ein !!", "Eingabedialog", "Heinz") MsgBox "Hallo " & Name, vbOKonly, "Begrüßung" End Sub Programmieren in Access Ausgabedialog (MsgBox)

28 Programmieren in Access Das DoCmd-Objekt Mit Hilfe des DoCmd-Objekts können Access-Aktionen wie Öffnen und Schließen von Formularen und Berichten, Ändern des Maus- Coursers oder Setzen von Steuerelementen durchgeführt werden. Syntax: DoCmd.Aktionsname Argumente

29 Programmieren in Access Das DoCmd-Objekt Der Code-Editor schlägt bei Eingabe von DoCmd die existierenden Methoden vor.

30 Programmieren in Access Das DoCmd-Objekt Einige DoCmd-Methoden DoCmd.BeepPiep ! DoCmd.CancelEventDie Methode bricht das laufende Ereignis ab DoCmd.OpenForm Formularname [,Ansicht] Ein Formular öffnen DoCmd.OpenReport Berichtsname [,Ansicht] Ein Bericht öffnen DoCmd.RunSQL SQL-Anweisung SQL-Befehl ausführen DoCmd.OpenTable Tabellenname [,Ansicht] [,Datenmodus] Eine Tabelle öffnen

31 Programmieren in Access Das Forms-Objekt Das Forms-Objekt listet alle Formulare einer Datenbank auf und bietet Methoden an um deren Eigenschaften zu verändern. Syntax Forms!Form.Element.Eigenschaft Innerhalb eines Formulars braucht man Objektebenen über dem Formular nicht angeben. Syntax Element.Eigenschaft

32 Programmieren in Access Eigenschaften von Steuerelementen Für Dokumentation von Eigenschaften in der Hilfe nachschlagen

33 Programmieren in Access Einige Steuerelementeigenschaften Allgemeine Eigenschaften VisibleSteuerelement sichtbar DisplayWhenSteuerelement wird angezeigt am Bildschirm oder nur im Druck gezeigt Eigenschaften von beschrifteten Steuerelemente FontNameFont der Beschriftung BorderWidthRahmenbreite CaptionBeschriftung des Steuerelements ForeColorTextfarbe

34 Objekt Ereignis Eigenschaft Methode Programmieren in Access Der Objektkatalog Im Objektkatalog sind alle verfügbaren Objekte, Methoden und Eigenschaften. Angezeigt wird er mit F2

35 Programmieren in Access Das Reports-Objekt Das Reports-Objekt listet alle Formulare einer Datenbank auf und bietet Methoden an um deren Eigenschaften zu verändern. Syntax Reports!Report.Element.Eigenschaft

36 Programmieren in Access Der Focus Um ein Steuerelement in den aktiven Zustand zu stellen (Focus), wird die Methode Objektname.SetFocus benutzt. Die Eigenschaft Visible läßt sich bei einem aktiven Element nicht verändern

37 Programmieren in Access Die wichtigsten Kontrollstrukturen in VBA Die Auswahl If Bedingung Then Anweisung End if Die Fallauswahl Select Case Selektor Case Auswahlwert1... Case Auswahlwertn... End Select Die zählergesteuerte Wiederholung For Zählervariable = Startwert To Endwert Step = Schrittweite Anweisung1... Anweisung n Next Zählvariable

38 Programmieren in Access Die wichtigsten Kontrollstrukturen in VBA Die bedingte Wiederholung Do While / Until Bedingung Anweisung 1... Anweisung n Loop Die bedingte Wiederholung Do Anweisung 1... Anweisung n Loop While / Until Bedingung

39 Tabellen, Abfragen und Formulare erstellen Datensätze hinzufügen, ändern, löschen, sortieren Abfragen durchführen und Datensätze filtern Zugriff erfolgt durch die Objekthierarchie Beispiel : - DBEngine.Workspace(0).Database(0).TableDefs(Student) Kurzschreibweise : - DBEngine(0)(0)!Student Zugriff auf Tabellen/Datensätze

40 Applikation DBEngine Forms Reports DoCmd Screen Errors Workspaces Databases TableDefs IndexesFields QueryDefs ParametersFields RecordSets Fields Relations Fields Containers Documents Connections QueryDefs Recordsets Users Groups Users Access-Objekthierarchie

41 Tabelle erstellen Feld in Tabelle erstellen Feld an die Tabelle anhängen Tabelle anhängen Tabelle. CreateField (Beispiel, dbInteger) Datenbank. CreateTableDef (Tabellenname) Tabelle. Fields.Append Feldname Datenbank. TableDefs.Append Tabellenname Zugriff auf Tabellen/Datensätze

42 Tabelle öffnen Gesuchte Daten mit aktuellem Datensatz vergleichen Durch die Datensätze bewegen mit: Tabelle.Move Zeilenanzahl Tabelle.MoveNext Tabelle.MovePrevious Tabelle.MoveFirst Tabelle.MoveLast alle ohne Parameter Zugriff auf Tabellen/Datensätze

43 Tabelle.Index = MNr Tabelle.Seek Vergleichsoperator, Suchzeichenkette Bei Abfragen stehen FindFirst FindLast FindNext FindPrevious zur Verfügung mit Suchzeichenkette als Parameter Zugriff auf Tabellen/Datensätze

44 Wird erleichtert durch: Setzen von Haltepunkten Schrittweise Ausführung Variablenüberwachung Prozeduraufrufe verfolgen Grundsätzlich ist die kontextsensitive Hilfe [F1] zu empfehlen. Fehlerbehandlung

45 Im Codeeditor bietet das Menu TESTEN Unterstützung bei der Fehlersuche Fehlerbehandlung

46 Mit diesen Befehlen kann man die Module von Hand kompilieren Vorteil: Man findet Fehler bevor die Prozeduren ausgeführt werden (was sonst nicht der Fall ist).

47 Fehlerbehandlung Mit einem Haltepunkt erreicht man, daß die Ausführung der Prozedur unterbrochen wird, und der Codeeditor geöffnet wird. Ab diesem Punkt kann man dann die Variablenüberwachung und die Einzelschrittausführung einsetzen. Variablenüberprüfung Einzelschrittausführung

48 Unter EXTRAS - START können alle Optionen bezüglich der Datenbank eingestellt werden Startoptionen

49 Unter EXTRAS - ADD-INS - ÜBERSICHTS-MANAGER kann eine Tabelle Übersichtseinträge und ein Formular Übersicht erstellt werden. Startoptionen

50 Kommandozeilenoptionen: /ExclDatenbank wird exklusiv geöffnet /RoDatenbank wird nur zum Lesen geöffnet /X MAKROMakro wird zu Beginn ausgeführt /RuntimeEs kann keine Entwurfsansicht geöffnet werden /User NAMEBenutzer wird automatisch angemeldet Startoptionen


Herunterladen ppt "Visual Basic für Applikationen (VBA) 1. Einführung in Objektorientiertheit, Pogrammierung in Access und Zugriff auf Steuerelemente 2. Zugriff auf Datenelemente,"

Ähnliche Präsentationen


Google-Anzeigen