O'Reilly logo

Microsoft Office Access 2007 - Das Handbuch by Natascha Nicol, Ralf Albrecht

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Datenfelder
773
Programmierung
Datenfelder
Drei Funktionen für die Arbeit mit Datenfeldern (so genannten Arrays) möchten wir Ihnen präsen-
tieren. Wie in Kapitel 34 beschrieben, werden Datenfelder mit dem
Dim
-Befehl dimensioniert. Bei-
spielsweise erzeugt
ein Feld mit sieben Zeichenketten. Mit
können Sie Werte an das Datenfeld zuweisen. In Access ist eine Funktion implementiert, die Ihnen
das Füllen von Datenfeldern erleichtert. Mit
Array()
können Sie die Inhalte eines Datenfeldes fest-
legen. Wichtig ist dabei, dass die Array-Variable als vom Typ
Variant
deklariert sein muss.
Möchten Sie jetzt eine Schleife programmieren, die alle Elemente des Arrays ausgibt, so ergibt sich
das Problem, dass Sie nun die Elemente zählen müssen, um die obere Grenze des Datenfeldes zu
bestimmen. Das folgende Programmfragment gibt alle Tage im Testfenster aus.
Die Elemente zu zählen und diese Werte als Grenzen in Schleifen festzulegen, kann zu Fehlern in
Programmen führen. Stellen Sie sich vor, es wird die Fünftagewoche eingeführt und die Einträge für
Samstag und Sonntag werden herausgenommen. Dann wird die
For-Next
-Schleife mit einem Fehler
abbrechen, denn Sie versuchen dann, auf Elemente von
aWochentage
zuzugreifen, die nicht existieren.
Wir empfehlen Ihnen, die Funktionen
LBound()
und
UBound()
zur Bestimmung der unteren und
oberen Grenzen eines Datenfeldes zu verwenden. Die Schleife im oben gezeigten Programmteil hätte
dann folgendes Aussehen:
Dim aWochentage(6) As String
aWochentage(0) = "So"
aWochentage(1) = "Mo"
Dim aWochentage As Variant
aWochentage = Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa")
Dim aWochentage As Variant
Dim i As Integer
aWochentage = Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa")
For i = 0 To 6
Debug.Print aWochentage(i); " ";
Next
Debug.Print
For i = LBound(aWochentage) To UBound(aWochentage)
Debug.Print aWochentage(i); " ";
Next

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required