Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Erstellen von Do While- und Do Until-Schleifen in einem Makro

Dieser Artikel wurde zuvor veröffentlicht unter D39460
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
209790 ACC2000: How to Create Do While and Do Until Loops in a Macro
Zusammenfassung
Moderat: Erfordert Grundkenntnisse in den Bereichen Makros, Codierung und Interoperabilität.

Die Informationen in diesem Artikel beziehen sich ausschließlich auf Microsoft Access-Datenbanken (.mdb) und Microsoft Access-Projekte (.adp).
Zusammenfassung
Um eine Do While- oder Do Until-Schleife in einem Microsoft Access-Makro auszuführen, müssen Sie eine Kombination aus einer korrekten Makrostruktur und der RunMacro-Aktion verwenden, wobei der Parameter "Repeat Expression" (Wiederholbedingung) die entsprechenden Informationen enthalten muß. Diese Anforderungen werden an späterer Stelle in diesem Artikel eingehender erläutert.
Weitere Informationen
Es gibt diverse Typen sogenannter "Do-Schleifen" (Do Loops). Jeder dieser Typen handhabt Schleifenprozeduren und Schleifenbedingungen anders. Es gibt folgende Typen von "Do-Schleifen":
  1. Do While <Bedingung>... Loop
    Diese Schleife wird ausgeführt, solange die angegebene Bedingung "Wahr" ist. Trifft das Programm auf die Schleife, während die Bedingung bereits "Falsch" ist, wird die Schleife nicht ausgeführt.
  2. Do Until <Bedingung>... Loop
    Diese Schleife wird ausgeführt, bis die angegebene Bedingung "Wahr" ist. Trifft das Programm auf die Schleife, während die Bedingung bereits "Wahr" ist, wird die Schleife nicht ausgeführt.
  3. Do... Loop While <Bedingung>
    Diese Schleife wird beim ersten Mal unabhängig von der definierten Bedingung ausgeführt und wird dann weiter ausgeführt, solange die Bedingung "Wahr" ist. Trifft das Programm auf die Schleife, während die Bedingung bereits "Falsch" ist, wird die Schleife einmal ausgeführt.
  4. Do... Loop Until <Bedingung>
    Diese Schleife wird beim ersten Mal unabhängig von der definierten Bedingung ausgeführt und wird dann weiter ausgeführt, bis die Bedingung "Wahr" ist. Trifft das Programm auf die Schleife, während die Bedingung bereits "Wahr" ist, wird die Schleife einmal ausgeführt.
    Um eine Do While- oder Do Until-Schleife in einem Makro ausführen zu lassen, müssen Sie ein Makro verwenden, das den nachstehenden Beispielen ähnelt. Um die folgenden Beispiele zu erstellen, öffnen Sie ein neues Makro und klicken Sie dann im Menü ANSICHT auf MAKRONAMEN. Fügen Sie die folgenden Makronamen und -aktionen hinzu und speichern Sie dann die Makrogruppe unter dem Namen "Do_Loops".
Do While <Bedingung>... Loop und Do Until <Bedingung>... Loop:
   Macro Name       Action   -------------------------   Do_Loop1         RunMacro   Loop1            MsgBox
Do_Loop1 Actions
   --------------------------------------   RunMacro      Macro Name: Do_Loops.Loop1      Repeat Expression: <Ihre_Bedingung>
Loop1 Actions
   -------------------   MsgBox      Message: ="Loop"
In diesem Beispiel ruft das Makro "Do_Loop1" das Makro "Loop1" auf, während der Parameter "Repeat Expression" der RunMacro-Aktion "Wahr" ist.

Do... Loop While <Bedingung> und Do... Loop Until <Bedingung>:
   Macro Name       Action   -------------------------   Do_Loop1         RunMacro                    RunMacro   Loop1            MsgBox
Do_Loop1 Actions
   --------------------------------------   RunMacro      Macro Name: Do_Loops.Loop1   RunMacro      Macro Name: Do_Loops.Loop1      Repeat Expression: <Ihre_Bedingung>
Loop1 Actions
   -------------------   MsgBox      Message: ="Loop"
In diesem Beispiel ruft das Makro "Do_Loop1" das Makro "Loop1" einmal unabhängig von der Bedingung auf und ruft es danach solange weiter auf, wie der Parameter "Repeat Expression" der RunMacro-Aktion "Wahr" ist.

Bedingungen:
Die in der Schleife verwendete Bedingung, die im Parameter "Repeat Expression" der RunMacro-Aktion definiert ist, kann basieren auf einem Wert in einem Feld auf einem Formular, einer Eigenschaft eines Steuerelements auf einem Formular, oder auf dem von der Visual Basic-Funktion zurückgemeldeten Wert. Basiert die Bedingung auf einem Feld in einem Formular oder auf einer Eigenschaft eines Steuerelements auf einem Formular, sieht die Syntax ungefähr wie folgt aus:
   Forms![CounterForm]![Counter]<=10
- oder -
   Forms![EntryForm]![InvoiceNo].Visible=True
Basiert die Bedingung auf dem von der Visual Basic-Funktion zurückgemeldeten Wert, sieht die Syntax ungefähr wie folgt aus:
   Time()>=TimeEntry()
Vergleich zwischen Do While-Schleifen und Do Until-Schleifen:
Ob es sich bei einer Schleife um eine Do While- oder eine Do Until-Schleife handelt, ist von der Bedingung abhängig. Die RunMacro-Aktion führt das Makro aus, bis die im Parameter "Repeat Expression" definierte Bedingung "Falsch" ist. Dieses Verhalten ist exakt das einer Do While-Schleife, aber das Gegenteil des Verhaltens einer Do Until-Schleife. Damit eine Bedingung für eine Do Until-Schleife wie gewünscht wirkt, müssen Sie daher der Bedingung in der RunMacro-Aktion den Operator NOT voranstellen.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, daß nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
kbusage
Eigenschaften

Artikelnummer: 209790 – Letzte Überarbeitung: 12/05/2015 11:12:27 – Revision: 1.0

  • Microsoft Access 2000 Standard Edition
  • kbnosurvey kbarchive kbusage KB209790
Feedback