Ablaufprotokoll der WKL-Steuerelemente für den Support aufzeichnen
Zeichnen Sie in einer Textdatei auf, was die WKL-Steuerelemente in Access tun – ihre Aufrufe, die Nachrichten ihrer Fenster und die Fehler, die sie abfangen –, wenn sich ein Problem auf andere Weise nicht erkennen lässt.
Voraussetzungen: WKL Forms Object Library, beliebiges Release.
Lösungsüberblick
Das Ablaufprotokoll ist ausgeschaltet, solange keiner von zwei Schaltern eine Protokolldatei nennt. Die Steuerelemente lesen den Schalter einmal, wenn das erste WKL-Steuerelement eines Access-Prozesses geladen wird; jede weitere Zeile dieses Prozesses geht in die Datei. Weder das Release-Paket noch das Build-Werkzeug, das Add-In oder der Bootstrapper setzen ihn; eine ausgelieferte Anwendung schreibt daher nie von sich aus ein Ablaufprotokoll.
| Schalter | Ort | Wert |
|---|---|---|
Registrierungswert ComTrace | HKEY_CURRENT_USER\Software\The White Knight Labs\Access Framework | Vollständiger Pfad der Protokolldatei |
Umgebungsvariable WKL_COM_TRACE | der Access-Prozess | Vollständiger Pfad der Protokolldatei; hat Vorrang vor dem Registrierungswert |
Umsetzung
# On: every Access started from now on by this Windows user writes the trace. $key = 'HKCU:\Software\The White Knight Labs\Access Framework' if (-not (Test-Path $key)) { New-Item $key | Out-Null } Set-ItemProperty $key -Name ComTrace -Value "$env:TEMP\wkl-trace.log" # ... start Access, reproduce the problem, close Access ... # Off again. Remove-ItemProperty $key -Name ComTrace
Warnung: Legen Sie den Schlüssel nicht mit
New-Item -Forcean. Ist der Schlüssel bereits vorhanden, ersetzt-Forceihn durch einen leeren Schlüssel und löscht alles darunter, auch die Layouts, die Benutzer in UserForms angeordnet haben (Layouts), und die Fensterpositionen der Designer (Designer).
Senden Sie die Protokolldatei zusammen mit den Schritten, die zu dem Problem geführt haben. Jede Zeile beginnt mit der Uhrzeit und der Prozess-ID von Access.
Hinweise
- Schalten Sie das Protokoll danach wieder aus. Die Datei wird nicht rotiert und wächst mit jeder Aktion (eine lange Sitzung kann sie auf über 100 MB anwachsen lassen), und das Schreiben verlangsamt Access spürbar.
- Starten Sie Access neu, nachdem Sie den Schalter geändert haben: Ein Access, das bereits ein WKL-Steuerelement geladen hat, behält die gelesene Einstellung.
- Der Ordner muss vorhanden sein und für den Benutzer beschreibbar; ein Pfad, in den Access nicht schreiben kann, wird ohne Meldung ignoriert.
- Was das Protokoll enthält: Aufrufe und Fensternachrichten der WKL-Steuerelemente mit ihren Argumenten sowie die abgefangenen Fehler. Es kann Formulare, Felder und Schlüssel der Anwendung nennen. Behandeln Sie es wie die Datenbank, aus der es stammt.
- Die Umgebungsvariable ist für Testskripte gedacht, die Access selbst starten. Ein Access, das über die Shell oder per COM gestartet wird, sieht die Umgebung eines Skripts nicht; deshalb gibt es den Registrierungswert.