Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in Programmierung in Access - VBA

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in Programmierung in Access - VBA"—  Präsentation transkript:

1 Einführung in Programmierung in Access - VBA

2 Grundsätzliches Automatisierung von Abläufen
VBA Visual Basic for Application nahezu identisch mit VB 6.0 wesentliche Unterschiede zu VB .net Ereignis gesteuerte Programmierung 3 Komponenten Entwicklungsumgebung Kein Macro Recorder Viele Komfortfunktionen Sprache Visual Basic ist leicht zu lernen Viele Analogien zu anderen Programmiersprachen Objektmodell Für jedes MS Office Modul ähnlich aber anders VB - Hilfe verwenden Access MDB D:\Projects\Schule\ADAT\Access_Programming Unter.mdb Schriftgröße: Extras -> Optionen -> Editorformat -> 16pt

3 Entwicklungsumgebung
Doppelclick auf Modul / Alt+F11 Project (Projektmanager) Access - Klassenobjekte (z.B. Formular) Module (z.B.: ModHilf) - benutzererstellt Klassenmodule Code Bereich - 1 Fenster je Modul 2 Dropdown Boxen (Objekte, Ereignisse / Prozeduren) Einzel Prozedur / Gesamtmodulanzeige unterer linker Rand

4 Entwicklungsumgebung FS
Eigenschaftenfenster Name bzw. Formulareigenschaften bei Access - Klassenobjekten Direktfenster Ausgaben aus Modulen mit debug.print Direkte Befehlseingabe ? .. print Beispiel: Ausgabe von Datum und Zeit Sub - Prozedurunterprogramm Befehle: MsgBox, Strings, Verkettung, Variablen - definition, eingebaute Konstante, Fortsetzungszeile Strg+Leertaste - Code Completion Funktion Msgbox aufrufen (ohne / mit Parametern in Klammern) debug.print - Ergebnis in Direktfenster Parameterinfo - Toolbar "Bearbeiten" Hilfe - F1 sub datausgabe () msgbox "Es ist jetzt " & Time & " am " & date end sub Strings, Verkettungsoperator Ergänzen um 2. Parameter - VB Konstante Hilfe Funktion (F1) Fortsetzungszeile Unterschiede Funktionsaufruf mit Verwendung und ohne Verwendung des Returnwertes

5 Entwicklungsumgebung FS 2
VBA ist "case insensitiv" - automatische Anpassung der Schreibweise Variable können, müssen aber nicht deklariert werden (impliziter Typ: Variant) Kontextmenü -> Definition springt zur Definition der Variablen (oder Meldung) Syntaxfehler werden sofort erkannt Ausführen von Prozedurunterprogrammen ( , F5)

6 Entwicklungsumgebung FS 3
Testen 2. Beispiel: Schleife Auskommentieren: Zeichen: ' oder Toolbarfunktionen (Bearbeiten) Bearbeiten -> Suchen / Ersetzen Haltepunkte Toolbar Debuggen Einzelschritt, Prozedurschritt, Weiter, Abbrechen Position verschieben Codeänderungen vornehmen Direktfensterüberprüfungen Überwachungsfenster Menüfunktion: Überwachung hinzufügen Lokal - Fenster

7 Entwicklungsumgebung FS 4
Auflistungen bearbeiten Objekt - Katalog (F2) Objekttypendeklaration statisch dynamisch For Each Next zum Durchlaufen von Auflistungen "." und "!" Notation "." bei Verweis auf eingebaute Unterobjekte "!" bei Verweis auf Userdefinierte Objekte

8 Entwicklungsumgebung FS 4
Konstante Erste 2 Buchstaben - Verweis auf Bibliothek ac - Access z.B.: acTextBox als Controltyp vb - Visual Basic z.B.: vbOkCancel ad - ADO z.B. adAddNew Zuweisungen Variable: "=" Objektreferenzen: "set" Benannte Parameter ":="

9 Sprache Variable Name 1. Buchstabe danach Alphanumerische Zeichen oder "_" Groß- und Kleinschreibung zur Lesbarkeit einsetzen (z.B.: FehlerMeldung) Automatische Deklaration und Initialisierung Empfehlung: Am Beginn der Prozedur deklarieren. Erzwingbar mit "Option Explicit" am Modulanfang Definition mit: DIM STATIC PRIVATE PUBLIC

10 Sprache FS Variablen FS Beispiel: DIM i as Integer Datentyp nach as:
Byte, Boolean, Currency (15 Stellen vor und 4 Stellen nach dem Komma), Date (8 Byte), Decimal, Double, Integer (2 Byte), Long (4 Byte), Object, Single, String, Variant Kurzform Integer: zahl%, Long: zahllang&, Currency: String: mystr$, Double: dz# Array: dim sarr(3,2) as string, redim sarr(5,4) Definitionsort gibt scope an lokal (in Prozedur) - modul (in Deklarationen) - global (Public)

11 Sprache FS 2 Konstante Dezimalzahl (z.B.: 38)
Hexadezimalzahl (z.B.: &hF4) Datum (z.B.: #1/1/2006#) Definition mit const

12 Beispiel Bilder verwalten Bilder in Datenbank
Tabellen - OLE Feld (z.B.: tblKunst) Formularassistent erzeugt ein gebundenes Objektfeld nur BMP's direkt anzeigbar für andere Formate wird ein OLE Server benötigt MS Photo Editor hat OLE Server MS Picture Manager (Office 2003 nicht) Kompliziertes Einfügen Kontext Menü -> Objekt einfügen -> aus Datei erstellen -> Auswählen Viel Platz in Tabelle benötigt

13 Beispiel Bilder verwalten Bilder in Dateisystem
Tabelle mit Textfeld für DateiPfad Formular mit Assistent erzeugen Bildsteuerelement hinzufügen eigene Prozedur zum Anzeigen der Bilder Aufruf der Prozedur bei Ereignissen: Beim Anzeigen des Formulars (Ereignisroutine: Current) Nach Eingabe (Nach Aktualisierung) des Dateinamens (Ereignisroutine: AfterUpdate) In Access Klassenmodul einfügen (sonst "Me" nicht verwendbar) Kommando Schaltfläche für Fileauswahl (Achtung: Verweise hinzufügen: Microsoft Office 11.0 Object Library) Tabelle mit Formularassistent -> ctl Bild - ungebundenes Bildsteuerelement dazu -> irgendein Testbild angeben -> Bildeigenschaft wieder herauslöschen Bild auswählen -> Verzeichnis

14 Beispiel Bilder verwalten Bilder im Report
Bild Steuerelement einfügen Ereignisroutine für beim Drucken "Detailbereich_Print" schreiben "Picture" Eigenschaft des Bildsteuerelementes auf Dateinamen aus Textfeld setzen

15 Sortieren im Formular Formulareigenschaft: "Sortiert nach" (Daten) auf Feld setzen (z.B.: [PLZ]) (mehrere Felder durch "," trennen) Beim Start des Formulars: Schaltfläche "Filter/Sortierung anwenden" drücken Sortierung initialisiert das "RecordSet"

16 Sortieren im Formular Programmgesteuertes Umsortieren
Tabelle tblKunden erstellen (siehe Beispieldatenbank) Formular frmKunden erstellen oder generieren. ev. in Ereignisroutine "Form_Load" die OrderByOn Eigenschaft auf "True" setzen. Kommandoschaltflächen für jede Sortierart ins Formular einfügen Ereignisroutine für "Click" Ereignis der Schaltfächen Recordset von Formular holen Primary Key Wert speichern "OrderBy" Eigenschaft setzen Im neuen Recordset zu gespeichertem Primary Key navigieren

17 Mit Formulare Programmieren Ereignisse bezogen auf Formular
Öffnen von Formularen DoCmd.OpenForm (siehe frmKunden in Beispieldatenbank) Ereignisse unüberschaubare Menge Formular - Ereignisreihenfolge: Öffnen Schließen Beim Öffnen Beim Entladen Beim Laden Beim Deaktivieren Bei Größenänderung Beim Schließen Beim Aktivieren Beim Anzeigen

18 Mit Formulare Programmieren FS2 Ereignisse bezogen auf Daten
Bearbeiten von Datensätzen Beginnt vor der ersten Änderung eines Feldes Endet mit der Speicherung des Datensatzes Ereignisreihenfolge: Vor Eingabe (nur bei neuen Datensätzen) Bei Geändert (Beim ersten Eingeben oder Löschen eines Zeichens) Vor Aktualisierung (Vor der Datensatzspeicherung) Nach Aktualisierung Nach Eingabe Beim Anzeigen Abbruch falls möglich mit "Cancel = True"

19 Mit Formulare Programmieren FS3 Startformular
Extras -> Start -> Formular / Seite anzeigen: Startformular eintragen Nodrwind Datenbank Start -> Hauptübersicht OpenForms Funktion als Ausdruck aufgerufen (Modul Form_Hauptübersicht) Fehlerbehandlung OnError goto .... Resume ..... Labels

20 Mit Formulare Programmieren FS4 Bestellformular
Bestellungen Bestellungen Unterformular Verknüpft über Bestellnr Formularfuß Feld: BestellZwischensumme Feld: Zwischensumme Berechnung aus Unterformular gesperrt angezeigt

21 Mit Formulare Programmieren FS5 Beziehungsarten
Einfache Tabelle, Abfrage oder 1:1 Beziehung Detailansicht oder Übersichtslisten ev. mit "Lookup" Feldern Navigationsleiste und Bildlaufleisten erforderlich? wenn nein: Formateigenschaften ausblenden: Bildlaufleisten -> nein, Datensatzmarkierer -> nein, Navigationsschaltflächen -> nein, Trennlinie -> nein Schaltflächen OK und Abbrechen Ok Verlässt Formula mit Speicherung Abbrechen Verläßt ohne Speicherung


Herunterladen ppt "Einführung in Programmierung in Access - VBA"

Ähnliche Präsentationen


Google-Anzeigen