67
Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

Regionales Rechenzentrum für Niedersachsen

VBA (Visual Basic for Application)

Variablen und Konstanten

Page 2: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 2Access 2007 – VBA | 25.06.08 | Seite 2

Regionales Rechenzentrum für Niedersachsen

Operanden und Operatoren

Operanden können ... Variablen sein. Werte für Variablen können mit Hilfe der Tastatur

eingegeben werden und durch das Programm verändert werden. ... Konstanten sein. Konstanten bekommen einen Wert zugewiesen, der nicht

durch das Programm verändert werden kann. Operatoren

Arithmetische Operatoren berechnen Werte. Vergleichsoperatoren vergleichen zwei Werte. Logische Operatoren verknüpfen Werte oder Ausdrücke.

Page 3: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 3Access 2007 – VBA | 25.06.08 | Seite 3

Regionales Rechenzentrum für Niedersachsen

Ausdruck

... besteht aus Operanden und Operatoren, die nach bestimmten Regeln zusammengesetzt werden.

... formuliert einzelne Schritte eines Programms. ... ist eine Verarbeitungsvorschrift, die einen Wert als Ergebnis liefert. ... verändert den Wert von Variablen entsprechend des angegebenen

Datentyps. Beispiele:

Arithmetische Berechnung: preis * 0.16 Vergleichsopratoren nutzen: messpunkt > 0 Ausdrücke miteinander verknüpfen: (a >= b) AND (a >= c) Prozeduren aufrufen: addition(1,2)

Page 4: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 4Access 2007 – VBA | 25.06.08 | Seite 4

Regionales Rechenzentrum für Niedersachsen

Anweisungen

Pro Zeile steht eine Anweisung, die aus einem Ausdruck gebildet wird. ... werden meist sequentiell ausgeführt. ... symbolisieren eine bestimmte Aktion. ... sind die kleinste Einheit in einem VBA-Programm. Beispiele:

steuerelement.Value = 4 rabatt = preis * 0.01 summe = preis * menge button = MsgBox("Eingabe von ...")

Page 5: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 5Access 2007 – VBA | 25.06.08 | Seite 5

Regionales Rechenzentrum für Niedersachsen

Konstanten

... sind fest mit einem bestimmten Wert verankert. Dieser Wert darf nicht innerhalb des Gültigkeitsbereichs der Konstanten

verändert werden. ... sind Platzhalter für einen bestimmten Wert in einem Modul oder in einer

Prozedur. ... werden auch als Literale bezeichnet. Der Name einer Konstanten ist frei wählbar. Laut der VBA-

Namenskonvention sollte aber eine Konstante mit einem Großbuchstaben beginnen.

Page 6: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 6Access 2007 – VBA | 25.06.08 | Seite 6

Regionales Rechenzentrum für Niedersachsen

Konstanten definieren

... werden durch das Schlüsselwort Const gekennzeichnet. ... werden gleichzeitig deklariert und initialisiert. Initialisierung: Beschriftung = "Speichern".

Der Wert rechts vom Gleichheitszeichen wird der Konstanten links vom Gleichheitszeichen zugewiesen.

Die Konstante hat einen definierten Wert, der nicht verändert werden kann. Deklaration: Const Beschriftung As String.

Mit Hilfe des Schlüsselwortes As wird der Konstanten ein bestimmtes Format zugewiesen.

Von welchen Typ ist die Konstante. Diese Konstante kann nur Strings (Zeichenketten) speichern. Falls der Typ nicht angegeben wird, wird dieser in Abhängigkeit des Wertes

rechts vom Gleichheitszeichen bestimmt.

Const PI = 3.14159265Const Beschriftung As String = "Speichern"

Page 7: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 7Access 2007 – VBA | 25.06.08 | Seite 7

Regionales Rechenzentrum für Niedersachsen

Systemdefinierte Konstanten

... oder integrierte Konstanten sind vordefiniert. Das Präfix der Konstanten ist immer ein Hinweis auf seine Herkunft.

vb.. sind Konstanten, die direkt von der Programmiersprache definiert sind. Mso... sind Konstanten, die von Microsoft Office bereitgestellt werden. ac... sind Konstanten, die in der Access-Bibliothek definiert sind.

MsgBox "Guten Tag", vbInformation + vbOkOnly

Page 8: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 8Access 2007 – VBA | 25.06.08 | Seite 8

Regionales Rechenzentrum für Niedersachsen

Variablen

Zahlen und Zeichen werden in Variablen gespeichert. ... werden durch das Programm verarbeitet. ... können durch Ausdrücke verändert werden. ... können mit Hilfe der Tastatur ein Wert zugewiesen bekommen. ... sind Platzhalter für einen bestimmten Typ von Wert. ... sind

... in einem Kochrezept die Zutaten. ... beim Waschen die Wäsche sowie das Pulver. ... sind bei der Suche der zu durchsuchende Text, das Suchwort, der

Positionszähler sowie die Anzeige "Gefunden oder nicht". Zu einer Variablen gehören die folgenden Informationsbestandteile:

Der Name, der den Wert symbolisiert. Dem Wert, für den die Variable als Platzhalter genutzt wird. Dem Datentyp, der das Format für den Wert sowie den Speicherbedarf

festlegt.

Page 9: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 9Access 2007 – VBA | 25.06.08 | Seite 9

Regionales Rechenzentrum für Niedersachsen

Variablen deklarieren und initialisieren

Sub varDef()Dim faktor As SingleDim wert As Integer

Dim multi As SingleDim suchwort As StringDim gefunden As Boolean

faktor = 0.5wert = 4multi = faktor * wert

suchwort = "VBA"gefunden = False

End Sub

Pro Zeile wird eine Variable deklariert.Jede Variable ist von einem bestimmtenDatentyp.

Mit Hilfe des Gleichheitszeichen wird derVariablen ein Wert zugewiesen.Dieser Wert kann direkt angegeben odermit Hilfe anderer Variablen berechnetwerden.

Page 10: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 10Access 2007 – VBA | 25.06.08 | Seite 10

Regionales Rechenzentrum für Niedersachsen

Deklaration

Dim gefunden As Boolean

Wer kann auf die Variable zugreifen?

Der Variablenname ist frei wählbar. Die Bezeichnung sollte aber die Funktion der Variablen erläutern.

Mit dem Schlüsselwort As wird die Typbezeichnung eingeleitet.Hier wird ein Datentyp genutzt, der nur den Wert falsch oder wahr besitzt.

Page 11: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 11Access 2007 – VBA | 25.06.08 | Seite 11

Regionales Rechenzentrum für Niedersachsen

Variablennamen

... müssen mit einem Buchstaben beginnen. Folgende Zeichen dürfen nicht in einem Variablennamen

vorkommen: Punkt [ . ], Prozentzeichen [ % ], Dollar-Zeichen [ $ ], Ausrufezeichen [ ! ], Hash-Zeichen [ # ], Add-Zeichen [ @ ] oder kaufmännnisches Und [ & ].

Umlaute, Satzzeichen oder Sonderzeichen sollten nicht in Variablennamen genutzt werden.

... müssen aus einer zusammenhängenden Zeichenfolge bestehen. ... sind einzigartig. Sie kommen nur einmal in ihrem

Gültigkeitsbereich vor. Als Bezeichnung dürfen keine Schlüsselworte aus VBA genutzt

werden. ... können bis 255 Zeichen lang sein.

Page 12: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 12Access 2007 – VBA | 25.06.08 | Seite 12

Regionales Rechenzentrum für Niedersachsen

Hinweise zur Auswahl von Variablennamen

Der Variablenname sollte über die Art und Nutzung des Wertes Auskunft geben. Beispiel: Für die Berechnung eines Kreisradius wird eine Variable mit dem Namen radius erzeugt. Ungeeignete Variablennamen sind x2, a22 oder ähnlich kryptische Bezeichner.

Ein Variablenname sollte den Sachverhalt, den die Variable repräsentiert vollständig und genau beschreiben. Auf diese Weise ergeben sich oft bereits gute Namen. Gute Namen sind einfach zu lesen, da sie keine geheimnisvollen

Abkürzungen enthalten und eindeutig sind. Verzichten Sie auf Namen, die keinerlei Beziehung zum Inhalt der Variablen

erkennen lassen. Variablennamen sollten keine Tätigkeitsworte wie zum Beispiel "Get"

enthalten. "Get" ist Prozeduren von Objekten vorbehalten, die einen Eigenschaftswert des Objekts zurückgeben.

Variablennamen, die nur aus einem einzelnen Zeichen bestehen, sollten nur als Zähler oder Indizes genutzt werden.

Page 13: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 13Access 2007 – VBA | 25.06.08 | Seite 13

Regionales Rechenzentrum für Niedersachsen

Hinweise zur Schreibweise von Variablen

Variablennamen sollten, zur Unterscheidung von Konstanten, immer mit einem Kleinbuchstaben beginnen.

Variablennamen werden teilweise aus mehreren Namen zusammengesetzt. In der ungarischen Notation beginnt der Variablennamen mit einem kleinen Buchstaben. Alle Teilnamen beginnen mit einem Großbuchstaben.Beispiel: lineBuffer, nErrFlag. Andere Möglichkeit: line_buffer, n_err_flag.

Als Präfix (erste Buchstabe des Variablennamens) wird häufig eine Abkürzung für den Datentyp genutzt. Beispiel: booAusdruck für einen boolschen Ausdruck, intKM für eine Integer-Variable oder curPreis für einen Währungswert.

Page 14: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 14Access 2007 – VBA | 25.06.08 | Seite 14

Regionales Rechenzentrum für Niedersachsen

Beispiele für Variablennamen

Aufgabe ... sollte den Namen haben: ... nie den Namen haben:Bestellnummer

Rechnungsdatum

Kundenname

Farbe eines Autos

Farbe Eines Autos

bestellNr, bnrbestellnummer bstnrbestellung_Nr bnrechnungDatum rgDatebonDatum rech_Datum

rgDrechnungRechnungMaerz

kunde bezeichnungkundeName kndNameKunde namefarbeAuto faAufarbe_Auto faAuto

au_fa

AutoGelb

Page 15: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 15Access 2007 – VBA | 25.06.08 | Seite 15

Regionales Rechenzentrum für Niedersachsen

Finden Sie die Variable, die nicht mit den zwei anderen übereinstimmteyechartl eyechartl eyechartICONFUSION C0NFUSION CONFUSIONhard2read hardZread hard2readGRANDTOTAL GRANDTOTAL GRANDT0TAL

Folgende Zeichen sind sich sehr ähnlich: 1 und l (Kleines L) l und I (kleines L und großes L) 1 und I (1 und kleines L) 0 und O 2 und Z S und 5 G und 6

Machen Sie einen Bogen um Variablennamen, die Verwechslungen herausfordern.

Beispiele für Verwechselungen

Page 16: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 16Access 2007 – VBA | 25.06.08 | Seite 16

Regionales Rechenzentrum für Niedersachsen

Datentypen

... sind Baupläne für die Art der Variablen. ... geben über das Format eines Wertes, der in einer Variablen

gespeichert wird, Auskunft. ... legen Regeln für die Interpretation und Verwendung eines Wertes fest. Folgende Kategorien sind in VBA vorhanden:

Ganze Zahlen (Integer) und boolsche Werte. Fließkommazahlen oder Dezimalzahlen (Floating Point). Datumswerte. Zeichenfolgen.

Page 17: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 17Access 2007 – VBA | 25.06.08 | Seite 17

Regionales Rechenzentrum für Niedersachsen

Ganze Zahlen

Datentyp Datenbereich

AS Byte 1 0 0 – 255AS Integer [zahl%] 2 0 -32.768 – 32.767

[zahl&] 4 0 -2.147.483.648 -2.147.483.6472

Größe (Bytes)

Standard- wert

AS LongAS Boolean False -1 (True) und 0 (False)

Page 18: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 18Access 2007 – VBA | 25.06.08 | Seite 18

Regionales Rechenzentrum für Niedersachsen

Dezimalzahlen

Datentyp Wertebereich

[zahl!] 4 0

AS Double [zahl#] 8 0

8 0

Größe (Bytes)

Standard- wert

AS Single Negativer Wertebereich: -3,4E+ 38 bis -1,4E-45 Positiver Wertebereich: +1,4E-45 bis +3,4E38 Einfache Genauigkeit (ca. 7 Stellen) Negativer Wertebereich: -1,8E308 bis -4,94E-324 Positiver Wertebereich: +4,94E-324 bis +1,8E308 Doppelte Genauigkeit (ca. 15 Stellen)

AS Currency [zahl@] -9.22 E+14 bis 9.22E+15 (Der Datentyp besitzt 15 Vor- und 4 Nachkommastellen)

K02_variablen.accdb:Modul exampleVariablenProzedur: dezimalzahlen

Page 19: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 19Access 2007 – VBA | 25.06.08 | Seite 19

Regionales Rechenzentrum für Niedersachsen

Hinweise

In VBA wird als Dezimaltrennzeichen ein Punkt genutzt. Das Dezimaltrennzeichen der Daten in Access ist aber von den Ländereinstellungen des Systems abhängig.

Es können Rundungsfehler auftreten. Dezimalzahlen werden einem Wert nur angenährt.

Führende Nullen werden entfernt. VBA berücksichtigt keine Maßeinheiten oder Gewichte. Die Zahl 4.5 kann

für den Nutzer ein Geldbetrag oder aber auch die Breite eines bestimmten Objekts darstellen. Im Code spielen diese Beziehungen aber keine Rolle. Sie als Entwickler müssen für die korrekte Umrechnungen zwischen den verschiedenen Einheiten sorgen.

Page 20: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 20Access 2007 – VBA | 25.06.08 | Seite 20

Regionales Rechenzentrum für Niedersachsen

Datums- und Zeitwerte

Datumswerte werden in der Form #monat/tag/jahr# eingegeben. Zeitwerte werden in der Form #hh:mm:ss AM/PM# eingegeben. In Access selber werden aber Datums- und Zeitwerte in der Abhängigkeit

der Ländereinstellungen des Betriebssystems interpretiert. Konstante Datums- und Zeitwerte werden durch Hash-Zeichen begrenzt. Jedem Datumswert wird eine Integer-Zahl, beginnt am 30.12.1899

zugeordnet. Zum Beispiel das Datum 09.07.08 wird intern als 39638 interpretiert.

Jeder Zeitwert wird als prozentualen Anteil eines Tages interpretiert. Zum Beispiel wird Mitternacht als 0.5 interpretiert.

Dim heute As DateDim zeit As Date

heute = #11/30/2007#zeit = #11:30:00 AM#

Page 21: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 21Access 2007 – VBA | 25.06.08 | Seite 21

Regionales Rechenzentrum für Niedersachsen

Hinweise zu Datumswerten

Es können nur Daten zwischen den 01.01.0100 und 31.12.9999 verarbeitet werden.

Es wird für Europa der Gregorianischen Kalender genutzt. Microsoft setzt als Anfangsjahr für diesen Kalender das Jahr 1582 fest.

Zweistellige Datumangaben sollten sehr vorsichtig genutzt werden. Die zweistelligen Zahlen 0 bis 30 bezeichnen Jahre im 21. Jahrhundert

(2000 bis 2030). Die zweistelligen Zahlen 30 bis 99 bezeichnen Jahre im 20. Jahrhundert

(1930 bis 1999).

K02_variablen.accdb:Modul exampleVariablenProzedur: datumZeit und aktuellesDatum

Page 22: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 22Access 2007 – VBA | 25.06.08 | Seite 22

Regionales Rechenzentrum für Niedersachsen

Zeichenketten

... sind ab Version 4 nur durch die Größe der Festplatte begrenzt. ... werden immer durch Anführungszeichen begrenzt. ... können alle ANSI-Zeichen enthalten. Viele Druck- und

Steuerungszeichen sind als Konstanten vorhanden. ... können seit Access 2000 auch Unicode-Zeichen verarbeiten. ... müssen für Postleitzahlen oder Telefon-Vorwahlnummern genutzt

werden.

Dim satz As StringDim plz As String * 5

satz = "Hello World"plz = "123456"

Page 23: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 23Access 2007 – VBA | 25.06.08 | Seite 23

Regionales Rechenzentrum für Niedersachsen

Zeichenketten fester Länge

... As String * 5. Der String ist immer fünf Zeichen lang. Die Länge wird immer mit einer Ganzzahl angegeben. Falls mehr Zeichen eingegeben werden, wird die Zeichenkette ohne

Warnmeldung beschnitten. Falls weniger Zeichen eingegeben werden, wird die Zeichenkette mit

Leerzeichen aufgefüllt.

Dim satz As StringDim plz As String * 5

satz = "Hello World"plz = "123456"

Page 24: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 24Access 2007 – VBA | 25.06.08 | Seite 24

Regionales Rechenzentrum für Niedersachsen

ANSI-Zeichen; 0 bis 125

Page 25: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 25Access 2007 – VBA | 25.06.08 | Seite 25

Regionales Rechenzentrum für Niedersachsen

ANSI-Zeichen; 126 bis 255

Page 26: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 26Access 2007 – VBA | 25.06.08 | Seite 26

Regionales Rechenzentrum für Niedersachsen

Deklaration erzwingen

Die Anweisung Option Explicit wird am Anfang eines Moduls geschrieben. Die Anweisung gilt für das gesamte Modul. Jede Variable muss deklariert werden. Eine nicht deklarierte Variable kann

nicht genutzt werden. Vorteile:

Es kann keine Variablen mit dem gleichen Namen, aber unterschiedlichen Datentyp geben.

Falls die Variablen am Anfang eines Moduls oder einer Prozedur deklariert werden, erhöht sich die Lesbarkeit und Wartbarkeit eines Programms.

... kann automatisch gesetzt werden. Wählen Sie das Menü Extras – Optionen aus. Die Registerkarte Editor wird geöffnet. Das Kontrollkästchen Variablendeklaration erforderlich bekommt durch einen

Mausklick ein Häkchen, falls nicht vorhanden. Alle Module, die anschließend neu erstellt werden, besitzen am Anfang die

Anweisung Option Explicit.

Page 27: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 27Access 2007 – VBA | 25.06.08 | Seite 27

Regionales Rechenzentrum für Niedersachsen

Informationen zu Variablen

Sub Pruef()Dim heute As Date

heute = Now ' Now = Aktuelles Datum

' Wie kann der Datentyp interpretiert werden?Debug.Print IsDate(heute) ' Als DatumDebug.Print IsNumeric(heute) ' ... oder als Zahl?

'Datentyp der VariablenDebug.Print VarType(heute) ' ... als ZahlDebug.Print TypeName(heute) ' ... als String

End Sub

Page 28: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 28Access 2007 – VBA | 25.06.08 | Seite 28

Regionales Rechenzentrum für Niedersachsen

Datentyp Variant

... ist ein universeller Datentyp. Die Variable kann jeden Datentyp aufnehmen.

... benötigt bei numerischen Werten ca. 16 Bytes und bei Strings 22 Bytes plus die Textlänge. Der Datentyp benötigt sehr viel Speicher.

... wird genutzt, wenn der Datentyp des zu speichernden Wertes unbekannt.

... kann zu unnötigen Fehlermeldungen führen, weil keine automatische Typ-Überprüfung stattfindet.

Page 29: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 29Access 2007 – VBA | 25.06.08 | Seite 29

Regionales Rechenzentrum für Niedersachsen

Variant nutzen

Sub Pruef()Dim wert As Variant

wert = NULL ' NULL kennzeichnet ungültige Variablen

Debug.Print IsEmpty(wert) ' Nicht initialisierte ...

Debug.Print IsNull(wert) ' Ungültige Daten

Debug.Print TypeName(wert) ' Datentyp = NULL

wert = 5Debug.Print TypeName(wert) ' Datentyp = Integer

End Sub

Page 30: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 30Access 2007 – VBA | 25.06.08 | Seite 30

Regionales Rechenzentrum für Niedersachsen

Anweisungen in VBA

Sub addition()Const zahl = 10

Dim wert As IntegerDim summe As IntegerDim ausgabe As String

wert = InputBox("Bitte geben Sie einen Wert ein:")summe = wert + zahl

Debug.Print summe

ausgabe = wert & " + " & zahl & " = " & summeMsgBox(summe)

End Sub

Page 31: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 31Access 2007 – VBA | 25.06.08 | Seite 31

Regionales Rechenzentrum für Niedersachsen

Direktfenster

Öffnen Sie das Direktfenster mit Hilfe des Menüs Ansicht – Direktfenster. In diesem Fenster

... kann der Ablauf eines Programms in einem gewissen Umfang protokolliert werden.

... können Funktionen oder Anweisungen getestet werden. Mit Hilfe von <STRG>+<A> wird der gesamte Inhalt des Direktfensters

markiert. Mit Hilfe der Taste <ENTF> kann der markierte Inhalt im Direktfenster

gelöscht werden.

Page 32: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 32Access 2007 – VBA | 25.06.08 | Seite 32

Regionales Rechenzentrum für Niedersachsen

Aus dem Programm ins ... drucken

Setzen Sie die Zeile Debug.Print ausdruck in das Programm ein. Sobald die Anweisung ausgeführt ist, wird der Wert des Ausdrucks in das

Direktfenster geschrieben.

Page 33: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 33Access 2007 – VBA | 25.06.08 | Seite 33

Regionales Rechenzentrum für Niedersachsen

Anweisungen direkt eingeben

Klicken Sie mit den Mauszeiger auf eine freie Stelle im Direktfenster. Geben Sie die Anweisung ?Variable ein. Schließen Sie die Anweisung

mit <ENTER> ab. Der Wert Wert der Variablen wird in der nächsten Zeile im Direktfenster angezeigt.

Die Anweisung variable = 20 verändert den Wert der Variablen. Die Anweisung ?Left(zeichen, 4) führt die Funktion Left aus. Das

Resultat der Funktion wird in der nachfolgenden Zeile angezeigt. Im Direktfenster können Sie die vordefinierten Funktion aus VBA ausprobieren.

Page 34: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 34Access 2007 – VBA | 25.06.08 | Seite 34

Regionales Rechenzentrum für Niedersachsen

Kommentare

... erleichtern das Verstehen eines Programms. ... Kommentare müssen bei Codeänderungen oder Programm-

Erweiterungen angepasst werden. ... beziehen sich auf das Warum und nicht so sehr auf das Wie. Beispiele:

Warum wird an dieser Stelle diese Berechnung durchgeführt? Nicht: Wie werden die Werte berechnet?

Warum wird der String an diesem Zeichen getrennt? Nicht: Wie wird der String getrennt.

... beginnen in VBA immer mit dem Apostroph und enden automatisch mit dem Ende der Zeile.

Mehrere Zeilen können mit den entsprechenden Symbolen in der Symbolleiste Bearbeiten auskommentiert werden.

Page 35: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 35Access 2007 – VBA | 25.06.08 | Seite 35

Regionales Rechenzentrum für Niedersachsen

Kommentare platzieren

Kommentare am Anfang eines Moduls platzieren: Informationen zum Entwickler. Informationen zur Historie des Moduls.

Kommentare oberhalb oder unterhalb des Prozedurkopfes (Sub... ) platzieren: Welche Funktionalität wird abgebildet? Ein- und Ausgabeparameter der Prozedur.

Kommentare oberhalb oder rechts von einer Anweisung platzieren: Warum wird diese Anweisung gerade ausgeführt? Welches Resultat wird erwartet?

Page 36: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 36Access 2007 – VBA | 25.06.08 | Seite 36

Regionales Rechenzentrum für Niedersachsen

Überflüssige Kommentare

Kommentare sollten offensichtliche Dinge nicht in Prosa wiederholen. Ein negatives Beispiel: a = c + b; ' a ist die Summe von c und b

Kommentare, die dem Programmcode widersprechen, sind redundant.

Page 37: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 37Access 2007 – VBA | 25.06.08 | Seite 37

Regionales Rechenzentrum für Niedersachsen

Operatoren

Einstellige Operatoren: Vorzeichen für positive und negative Zahlen.

Zweistellige Operatoren: Arithmetische Operatoren. Vergleichsoperatoren. Logische Operatoren zum Verknüpfen von Ausdrücken. Zuweisungsoperator. Textverknüpfungen.

Page 38: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 38Access 2007 – VBA | 25.06.08 | Seite 38

Regionales Rechenzentrum für Niedersachsen

Zuweisungsoperator

Mit Hilfe des Gleichheitszeichens wird der Variablen ein Wert zugewiesen. Die Variable wird nicht mit einem Wert verglichen! Dem Ausdruck links vom Gleichheitszeichen wird das Ergebnis des

Ausdrucks rechts vom Gleichheitszeichen zugewiesen. Konstanten dürfen in Anweisungen nur rechts vom Gleichheitszeichen

stehen. Der Wert einer Konstanten darf nicht verändert werden.

wert = 4faktor = 0.5ausgabe = "Hello World"

Page 39: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 39Access 2007 – VBA | 25.06.08 | Seite 39

Regionales Rechenzentrum für Niedersachsen

Arithmetische Operatoren

Operator Beispiel^ 7^3 = 343/ Division 7 / 3 = 2.33

7 / 0 = Fehler\ 7 \ 3 = 2

7.2 \ 3.1 = Fehler

* Multiplikation 7 * 3 = 21+ Addition 7 + 3 = 10- Subtraktion 7 – 3 = 4

RechenartPotenzrechnung

Division mit Ganzzahlen

Mod Rest einer Division mit Ganzzahlen 7 Mod 3 = 17.2 Mod 3.1 = Fehler

K02_variablen.accdb:Modul exampleVariablenProzedur: berechnen

Page 40: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 40Access 2007 – VBA | 25.06.08 | Seite 40

Regionales Rechenzentrum für Niedersachsen

Reihenfolge der Operatoren

Bei Ausdrücken gelten die Rechenregeln der Mathematik:Klammer vorPotenz vorPunktrechnung vorStrichrechnung.

Beispiele: Liefert der Ausdruck (2 + 4 * 2) das gleiche Ergebnis wie ((2 + 4) * 2)? Liefert der Ausdruck (2^4 / 4) das gleiche Ergebnis wie (2^(4 / 4))?

Um fehlerhafte Ausdrücke zu vermeiden, sollten große Ausdrücke geklammert werden!

Page 41: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 41Access 2007 – VBA | 25.06.08 | Seite 41

Regionales Rechenzentrum für Niedersachsen

Strings verknüpfen

Mit Hilfe des kaufmännischen Unds (&) können Zeichenfolgen miteinander verknüpft werden. Zahlenwerte werden automatisch in Strings umgewandelt. Es können Variablen und / oder Konstanten miteinander verknüpft werden.

In einigen Büchern wird auch das Pluszeichen genutzt. Aber: 10 + " " + zeichenfolge erzeugt einen Fehler. Additionen mit einem String sind nicht möglich.

Dim zeichenfolge As String

zeichenfolge = "Eis"zeichenfolge = zeichenfolge & "bär"zeichenfolge = 10 & " " & zeichenfolgezeichenfolge = zeichenfolge & vbCrLf

Page 42: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 42Access 2007 – VBA | 25.06.08 | Seite 42

Regionales Rechenzentrum für Niedersachsen

Steuerzeichen

Konstanten ANSI-Zeichen BeschreibungvbCrLF Chr(13) & Chr(10) Kombination aus Wagenrücklauf und

ZeilenvorschubvbNewLine Chr(13) & Chr(10) Plattformspezifischer ZeilenumbruchvbCr Chr(13) Wagenrücklauf (Charriage Return)vbLF Chr(10) Zeilenvorschub (Line Feed)vbTab Chr(9) TabulatorzeichenvbBack Chr(8) Rückschrittzeichen

Steuerzeichen sind die nicht druckbaren Zeichen eines Zeichensatzes. Sie werden zur Formatierung der Bildschirmausgabe benötigt werden.

Beispiele: Den Zeilencursor an den Anfang der nächsten Zeile setzen: vbCrLF oder

Chr(13) & Chr(10) . Chr(34) ermöglicht die Darstellung des Anführungszeichens.

Page 43: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 43Access 2007 – VBA | 25.06.08 | Seite 43

Regionales Rechenzentrum für Niedersachsen

Chr() und Asc()

Chr(...) ... wird ein Integer-Wert von 0 bis 255 übergeben. Die Funktion liefert das dazugehörige ANSI-Zeichen zurück. Zum Beispiel Chr(65) liefert "A" zurück.

Asc(...) ... wird ein einzelnes Zeichen übergeben. Die Funktion liefert die dazugehörige Dezimalzahl zurück. Zum Beispiel Asc("A") liefert 65 zurück.

K02_variablen.accdb:Modul exampleVariablenProzedur: zeichen

Page 44: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 44Access 2007 – VBA | 25.06.08 | Seite 44

Regionales Rechenzentrum für Niedersachsen

Automatische Typumwandlung

... oder implizite Typumwandlung. ... bei verschiedenen numerischen Datentypen in einem Ausdruck:

VBA versucht einen Datentyp zu finden, in dem alle Werte dargestellt werden können.

Die Umwandlung verursacht meist keine Fehler. ... bei Strings, die als Zahlen in Berechnungen etc. interpretiert werden:

In Berechnungen werden Strings wie zum Beispiel "10" automatisch in einem numerischen Datentyp umgewandelt.

... bei Zahlen, die mit Strings verknüpft werden: Wenn das kaufmännische Und als Verknüpfungsoperator genutzt wird, werden

Zahlen automatisch als String interpretiert.

Page 45: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 45Access 2007 – VBA | 25.06.08 | Seite 45

Regionales Rechenzentrum für Niedersachsen

Strings in Berechnungen

ergebnis = "10" + 20 ... erzeugt keinen Fehler. 10 wird automatisch als numerischer Wert interpretiert. Als Ergebnis wird 30

ausgegeben. ergebnis = "A" + 20

... erzeugt einen Fehler. Mit Strings kann nicht gerechnet werden.

ergebnis = ASC("A") + 20 ... erzeugt keinen Fehler. Die Funktion liefert einen numerischen Wert, mit dem gerechnet werden kann.

ergebnis = "10 Eisbären" + 20 ... erzeugt einen Fehler. Mit einem String kann nicht gerechnet werden.

Page 46: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 46Access 2007 – VBA | 25.06.08 | Seite 46

Regionales Rechenzentrum für Niedersachsen

Explizite Typumwandlung

Debug.Print CInt(2.3) ' Ergebnis 2

Debug.Print CByte(256) ' Fehler: Überlauf

Debug.Print CBool(-1) ' Ergebnis wahr

Debug.Print CSng(22.4567878994556) ' Ergebnis 22,45679

Debug.Print CDbl(24) ' Ergebnis 24.0

Debug.Print CCur(2.37894) ' Ergebnis 2,3789

Debug.Print CDate("2.4.07") ' Ergebnis #04.02.2007#

Debug.Print CStr(2.3) ' Ergebnis "2,3"

Page 47: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 47Access 2007 – VBA | 25.06.08 | Seite 47

Regionales Rechenzentrum für Niedersachsen

MsgBox()

... ist ein Dialogfeld mit Schaltflächen zur Anzeige von Text. ... kann für kurze Status- oder Fehlermeldungen genutzt werden. ... gibt einen Integer-Wert zurück.

Der Wert gibt Auskunft darüber, welche Schaltfläche der Benutzer gedrückt hat.

Ob der Benutzer die Abbrechen-Schaltfläche gedrückt oder das Fenster nur geschlossen hat, ist nicht nachvollziehbar.

result = MsgBox(prompt [, buttons] [, title] [, helpfile, context ])

K02_variablen.accdb:Modul exampleVariablenProzedur: nachrichten

Page 48: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 48Access 2007 – VBA | 25.06.08 | Seite 48

Regionales Rechenzentrum für Niedersachsen

Parameter

prompt ist ein Informationstext für den Benutzer in dem Dialogfenster. title legt den Text fest, der in der Titelleiste des Dialogfensters

angezeigt wird. buttons

... bestimmt die angezeigten Schaltflächen. ... kann ein Icon anzeigen, die die Nachricht symbolisch erläutert. ... wird aus vordefinierten Konstanten gebildet.

result = MsgBox(prompt [, buttons] [, title] [, helpfile, context ])

Page 49: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 49Access 2007 – VBA | 25.06.08 | Seite 49

Regionales Rechenzentrum für Niedersachsen

Beispiele

MsgBox "Danke, ..."

Const txtTitel = "Addition"Dim message As StringDim result As VbMsgBoxResult

message = x & " + 4 = " & (x + 4)result = MsgBox(message, vbInformation, txtTitel)

Page 50: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 50Access 2007 – VBA | 25.06.08 | Seite 50

Regionales Rechenzentrum für Niedersachsen

Beispiele

Const txtTitel = "Fortsetzung der Berechnung"Const message = "Möchten Sie die Berechnung fortsetzen"Dim result As Integer

result = MsgBox(message, vbYesNo, txtTitel)

Const txtTitel = "Fortsetzung der Berechnung"Const message = "Möchten Sie die Berechnung fortsetzen"Dim result As Integer

result = MsgBox(message, vbExclamation + vbYesNo, txtTitel)

Page 51: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 51Access 2007 – VBA | 25.06.08 | Seite 51

Regionales Rechenzentrum für Niedersachsen

InputBox()

... fragt Werte vom Benutzer ab. ... ist eine Dialogbox, die aus einem Textfeld für die Eingabe und einer

Schaltfläche zur Bestätigung besteht. ... gibt einen String zurück, der den Inhalt des Textfeldes enthält.

Bei der Eingabe von Zahlen müssen diese in das entsprechende Format umgewandelt werden.

Zwischen Vor- und Nachkommastellen bei Dezimalzahlen kann der Benutzer ein Komma eingeben. VBA benötigt aber als Trennzeichen einen Punkt.

result = InputBox(prompt [, title] [, default] [, xPos] [, yPos] [, helpfile, context ])

Page 52: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 52Access 2007 – VBA | 25.06.08 | Seite 52

Regionales Rechenzentrum für Niedersachsen

Parameter

prompt beschreibt die gewünschte Eingabe. title ist eine Zeichenkette, die in der Titelleiste des Dialogfensters

angezeigt wird. default gibt ein Standardwert für die Eingabe vor, der vom Benutzer

verändert werden kann. xPos und yPos legen die Position der linken, oberen Ecke des

Dialogfeldes fest. Die Angaben werden in Twips per Pixel gerechnet (20 Twips sind 1 Pixel).

result = InputBox(prompt [, title] [, default] [, xPos] [, yPos] [, helpfile, context ])

Page 53: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | 10.12.08 | Folie 53Access 2007 – VBA | 25.06.08 | Seite 53

Regionales Rechenzentrum für Niedersachsen

Beispiel

Sub addition()Const zahl = 10

Dim strWert As StringDim intWert As IntegerDim summe As Integer

strWert = InputBox("Bitte geben Sie einen Wert ein:")intWert = CInt(strWert)summe = intWert + zahl

End Sub

Page 54: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 54Access 2007 – VBA | 25.06.08 | Seite 54

Regionales Rechenzentrum für Niedersachsen

Objekte

... stellen eine Abstraktion eines realen Gegenstandes dar. ... sind Akteure in einem abstrakten Modell. ... stellen die Formulare, Berichte, Steuerelemente etc. in Access

dar. ... haben bestimmte Eigenschaften (Attribute) und Methoden

(Funktionen). ... berichten über ihren Zustand und können diese über Methoden

verändern. ... sind die Instanz einer Klasse.

Page 55: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 55Access 2007 – VBA | 25.06.08 | Seite 55

Regionales Rechenzentrum für Niedersachsen

Reale Welt

Objekt Auto hat Eigenschaften wie Farbe,Kilometerstand, Motorleistung etc.

… kommuniziert mit anderen Verkehrsteilnehmern.

… beachtet die Verkehrszeichen.

Page 56: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 56Access 2007 – VBA | 25.06.08 | Seite 56

Regionales Rechenzentrum für Niedersachsen

Formular in Access

Eigenschaften (Attribute)

Backcolor (Hintergrundfarbe)

Caption (Beschriftung)

Scrollbars (Bildlaufleisten)

usw.

Methoden

Move (Verschieben)

Refresh (Neu Zeichnen)

SetFocus (Wird aktiv)

usw.

Ereignis (Event-Handler)

Click (Mausklick)

Activate (Aktiviert)

MouseUp (Maustaste auf)

usw.

Page 57: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 57Access 2007 – VBA | 25.06.08 | Seite 57

Regionales Rechenzentrum für Niedersachsen

Klassen

... 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.

VerkehrsteilnehmerVerkehrszeichen KFZ

Page 58: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 58Access 2007 – VBA | 25.06.08 | Seite 58

Regionales Rechenzentrum für Niedersachsen

Klassen in Access

Für jedes Formular sind die gleichen Eigenschaften und Methoden vorhanden. Welche Eigenschaften genutzt werden und wie sich das Formular verhält, legt der Entwickler der Datenbank fest.

Jede Schaltfläche hat die gleichen Eigenschaften und Methoden. Wie die Schaltfläche aussieht und wie sie auf Benutzeraktionen reagiert, ist unterschiedlich.

Page 59: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 59Access 2007 – VBA | 25.06.08 | Seite 59

Regionales Rechenzentrum für Niedersachsen

Eine Klasse hat

… Eigenschaften (Attribute). Attribute beschreiben einen Gegenstand. Jeder Gegenstand in einer Gruppe (Klasse) besitzt die gleichen

Eigenschaften. Jedes Objekt hat aber bestimmte Attributwerte, die das Objekt von

anderen Objekten unterscheidet. ... Methoden (Memberfunction, Elementfunktion),

Methoden verändern die Eigenschaft eines Objekts. Jedes Objekt in einer Gruppe (Klasse) hat die gleichen Methoden. Objekte nutzen Methoden, um mit anderen Objekten zu

kommunizieren. Objekte reagieren mit Hilfe von Methoden auf bestimmte Ereignisse.

Ereignisse sind zum Beispiel Mausklick, Drücken einer Taste etc.

Page 60: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 60Access 2007 – VBA | 25.06.08 | Seite 60

Regionales Rechenzentrum für Niedersachsen

Instanz (Exemplar)

... definiert eine Variable der entsprechenden Klasse. ... ist eine Variable vom Typ einer bestimmten Klasse. ... wird in der Regel mit Hilfe des Schlüsselwortes New angelegt. Sobald eine Instanz erstellt wird, wird für das Objekt Arbeitsspeicher

bereitgestellt. Sobald das Objekt geschlossen wird, wird der Arbeitsspeicher freigegeben

Wenn im Arbeitsspeicher ein vorhandenes Formular oder Bericht abgelegt wird, wird von einer Standardinstanz gesprochen. Weitere Instanzen von der gleichen Klasse werden zum Beispiel erstellt wenn ein Formular mehrfach geöffnet wird. Diese Art von Instanzen werden als Nicht-Standardinstanzen bezeichnet.

Page 61: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 61Access 2007 – VBA | 25.06.08 | Seite 61

Regionales Rechenzentrum für Niedersachsen

Objektvariablen definieren

Dim frm As Form

Set frm = New Form_frmKundefrm.Visible = True

Eine Objektvariable wird genauso wie eine Variable für eine Ganzzahl etc deklariert. In diesem Beispiel wird eine Objektvariable angelegt, die auf ein Formular verweisen kann. Der Inhalt der Objektvariablen ist undefiniert

Einer Objektvariablen kann nicht mit Hilfe eines Gleichheitszeichens ein Wert zugewiesen werden. Sie wird gesetzt (Set). Hier wird ein neuer (New) Verweis auf das Formular Form_frmKunde gesetzt. Das Objekt, auf welches verwiesen wird, muss existieren.

Anschließend wird mit Hilfe der Eigenschaft Visible (Sichtbar) das Fenster angezeigt.

Page 62: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 62Access 2007 – VBA | 25.06.08 | Seite 62

Regionales Rechenzentrum für Niedersachsen

Weitere Beispiel

Dim frm As New Form_frmKunde

frm.Visible = True

Dim frm As Object

Set frm = New Form_frmKundefrm.Visible = True

Page 63: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 63Access 2007 – VBA | 25.06.08 | Seite 63

Regionales Rechenzentrum für Niedersachsen

Variant - Typ

Dim frm As Object

Set frm = New Form_frmKundefrm.Visible = TrueSet frm = Nothing

Der Objekttyp Object kann auf jedes Objekt in Access verweisen. Es wird automatisch so viel Speicher bereitgestellt, wie das größte Objekt

benötigt. Eine Typüberprüfung ist nicht möglich.

Die Objektvariable wird auf nichts (Nothing) gesetzt. Der Verweis auf ein Objekt wird zerstört.

Page 64: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 64Access 2007 – VBA | 25.06.08 | Seite 64

Regionales Rechenzentrum für Niedersachsen

Eigenschaften

... beschreiben den aktuellen Zustand eines Objekts. ... beschreiben das Aussehen eines Objekts. Eigenschaftswerte können immer gelesen werden. Einige

Eigenschaftswerte können mit Hilfe von VBA verändert werden. ... werden von der Objektvariablen mit einem Punkt getrennt. ... können genauso wie andere Variablen genutzt werden. ... eines Formulars oder Steuerelements entsprechen den

deutschsprachigen Eigenschaften im Eigenschaftenfenster auf den Registerkarten Format, Daten und Andere. In VBA werden aber die englischsprachigen Namen benötigt, die über die Hilfe abgefragt werden können.

Page 65: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 65Access 2007 – VBA | 25.06.08 | Seite 65

Regionales Rechenzentrum für Niedersachsen

Eigenschaften eines Textfeldes

txtBenutzer.TextAlign = 1 txtBenutzer.Value = "Bestellung" txtPasswort.InputMask = "Password" txtPasswort.SetFocus

Page 66: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 66Access 2007 – VBA | 25.06.08 | Seite 66

Regionales Rechenzentrum für Niedersachsen

Name eines aktiven Formulars

Me.txtBenutzer.TextAlign = 1 Me bezieht sich auf das Formular, welches zu dem Code gehört. Hier wird das Formular genutzt, welche an die Anweisung gebunden ist. Steuerelementnamen und Formularnamen werden durch einen Punkt

getrennt. Set frm = Screen.ActiveForm

... bezieht sich auf das aktive Formular (ActiveForm) auf dem Bildschirm (Screen).

Ein aktives Formular hat eine farbige Titelleiste und liegt im Vordergrund von Access.

Page 67: VBA (Visual Basic for Application) - luis.uni-hannover.de · Regionales Rechenzentrum für Niedersachsen VBA (Visual Basic for Application) Variablen und Konstanten

OpenOffice | | Folie 67Access 2007 – VBA | 25.06.08 | Seite 67

Regionales Rechenzentrum für Niedersachsen

Text und Wert eines Textfeldes

control.Value ... enthält den in der Datenbank gespeicherten Wert.

control.text ... enthält den angezeigten Text im Textfeld. ... kann nur verändert werden, wenn das Steuerelement den Fokus hat. Die

Einfügemarke befindet sich im Textfeld. Mit Hilfe von Control.SetFocus kann der Fokus auf ein bestimmtes Steuerelement gesetzt werden.

Sobald das Textfeld den Fokus verliert, wird der Wert automatisch in der Datenbank gespeichert oder geht verloren.

K02_variablen.accdb:Formular: frmEIngabe