Haltepunkt

Aus DBWiki
Wechseln zu: Navigation, Suche

Beschreibung

Ein Hilfsmittel für das Debugging (Entwanzung, Fehlersuche) im VBA-Code ist das Setzen eines Haltepunkts.

Ein Haltepunkt ist eine Position im Code, an die das Programm direkt nach Aufruf einer Sub-Prozedur bzw. Funktion springt. Die weitere Ausführung des Codes wird an dieser Stelle unterbrochen.

Haltepunkt setzen

So richtest du einen Haltepunkt (Haltestelle) ein:

  • Klicke mit der linken Maustaste in der gewünschten Codezeile im VBA-Quelltext in den linken, grauen Randbereich des Code-Fensters,
  • oder setze den Cursor in die Codezeile, in der du einen Haltepunkt einrichten möchtest, und drücke die F9-Taste (oder verwende den Menübefehl Debuggen - Haltepunkt ein/aus).

An dieser Position erscheint nun ein dunkelroter Punkt, und die gesamte Zeile wird dunkelrot markiert. In den Deklarationszeilen kann kein Haltepunkt gesetzt werden.

Haltepunkt löschen

  • Durch Klick auf den roten Punkt kannst du den Haltepunkt wieder löschen.
  • Oder setze den Cursor in die Codezeile mit dem Haltepunkt, und drücke die F9-Taste (oder verwende den Menübefehl Debuggen - Haltepunkt ein/aus).

Alle Haltepunkte löschen

Zum Löschen aller Haltepunkte dient der Menübefehl Debuggen - Alle Haltepunkte löschen (oder die Tastenkombination Strg+Umschalt+F9).

Code schrittweise abarbeiten

Nach dem Anhalten des Codes kannst du nun

  • über die Taste F8 den Code in Einzelschritten weiter ausführen.
  • über die Tastenkombination Umschalt + F8 eine im Code enthaltene, weitere Sub-Prozedur bzw. Funktion in einem Stück ausführen lassen, ohne in diese ausgelagerte Prozedur zu verzweigen.
  • über die Taste F5 den Einzelschrittmodus wieder aufheben, und den Prozedurablauf ohne weitere Zwischenschritte bis zum Ende fortsetzen.

Einzelwert abfragen

Wenn du feststellen möchtest, welchen Wert eine Variable oder ein Ausdruck zu einem bestimmten Zeitpunkt haben, kannst du einfach eine Zeile zum Code hinzufügen, welche die benötigte Information

  • entweder als Meldung durch den Einsatz der MsgBox-Anweisung,
  • oder im Direktfenster durch die Debug.Print-Anweisung

liefert.

Eine weitere Alternative ist die Debug.Assert-Methode, die das Anhalten des Codes unter bestimmten Bedingungen erlaubt.


Wiki hinweis.png

Bekannter Fehler:

Wenn die Datenbank geschlossen wird, ohne einen Haltepunkt zu löschen, kann es vorkommen, dass der Code zukünftig auch weiterhin an dieser Stelle angehalten wird, obwohl der Haltepunkt nicht mehr sichtbar ist.

Mögliche Abhilfe:
  • Lösche alle Haltepunkte (siehe oben)
  • Füge an der Stelle, wo der Code stoppt, eine Leerzeile ein.
  • Kommentiere die Zeile, in der der Haltepunkt gesetzt war, lasse den Code einmal laufen und entferne anschließend den Kommentar wieder.


Weblinks