Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

7.7.4 For Each-Schleifen

7.7.5 Do...Loop-Schleifen und Varianten

Bei Do Loop-Schleifen kennen Sie bis zum letzten Durchlauf der Schleife nicht die Anzahl der Durchläufe. Ob die Schleife weiterläuft oder nicht, entscheidet allein das Abbruchkriterium. Das bekannteste Beispiel ist vermutlich das Durchlaufen eines Recordsets mit einer Do While...Loop-Schleife:

Public Sub AlleDatensaetzeAusgeben()

    Dim db As DAO.Database
    Dim rst As DAO.Recordset

    Set db = CurrentDb
    Set rst = db.OpenRecordset("Artikel", dbOpenDynaset)

    Do While Not rst.EOF
        Debug.Print rst!Artikelname
        rst.MoveNext
    Loop

    rst.Close
    Set rst = Nothing
    Set db = Nothing

End Sub

Listing 7.14: Durchlaufen einer Schleife mit Abbruchkriterium

Es gibt vier Varianten der Do Loop-Schleife - welche Sie davon verwenden, hängt ganz vom Einsatzzweck ab:

  • Do...Loop mit While-Abbruchbedingung in der ersten Zeile:
  • Do While ... Loop

  • Do...Loop mit While-Abbruchbedingung in der letzten Zeile
  • Do ... Loop While

  • Do...Loop mit Until-Abbruchbedingung in der ersten Zeile
  • Do Until ... Loop

  • Do...Loop mit Until-Abbruchbedingung in der letzten Zeile
  • Do ... Loop Until

    Der wesentliche Unterschied zwischen diesen Varianten ist, dass diejenigen mit Abbruchbedingung in der letzten Zeile mindestens einmal durchlaufen werden.

    Auch mit Do While-Schleifen lassen sich andere Schleifentypen nachbilden. Das folgende Beispiel gibt wiederum alle Formularnamen der aktuellen Datenbank aus. Auch hier ist der Programmieraufwand höher als bei der Lösung mit For Each - auch hier sollten Sie immer die For Each-Variante verwenden.

    Public Sub FormulareAusgebenMitDoWhile()

        Dim intAnzahlFormulare As Integer
        Dim i As Integer

        intAnzahlFormulare = CurrentProject.AllForms.Count

        Do While i < intAnzahlFormulare
            Debug.Print CurrentProject.AllForms(i).Name
            i = i + 1
        Loop

    End Sub

    Listing 7.15: Schleife mit fester Anzahl Durchläufe mit Do While abarbeiten

    Mit dem Exit-Schlüsselwort können Sie eine Schleife vorzeitig verlassen. Das gilt für Schleifen mit den Schlüsselwörtern Do und For; die passenden Anweisungen zum Verlassen lauten dann Exit Do und Exit For.

    Nächster Abschnitt:

    7.7.6 Exit

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.