Runtime-Helferlein: Datenbankfenster light

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wenn der Kunde eine Anwendung auf Basis der Runtime-Version von Access einsetzt, ist nicht nur das Debuggen schwierig. Sie können auch nicht mal eben auf die in den Tabellen enthaltenen Daten zugreifen, um etwa zu prüfen, ob bestimmte Daten wie gewünscht angelegt, geändert oder gelöscht werden, oder manuelle Datenänderungen vorzunehmen. In diesem Beitrag stellen wir Ihnen ein Formular vor, das Sie mit einer für den Benutzer verborgenen Tastenkombination öffnen können und das die Anzeige der Datenbankobjekte erlaubt.

Zum Glück sind die Zeiten vorbei, in denen Sie eine Anwendung auf dem Rechner des Benutzers gemeinsam mit diesem telefonisch debuggen mussten (außer natürlich, Sie konnten diesem mal schnell einen Besuch abstatten). Mittlerweile sind Sie mit Tools wie GotoMeeting, NetViewer et cetera schneller per Fernwartung auf dem Rechner des Benutzers als Sie es aus der Haustür schaffen.

Wenn die Anwendung auf einem Rechner läuft, der statt der Access-Vollversion die Runtime-Version nutzt, haben Sie dennoch ein Problem: Sollte dort nämlich mal ein logischer Fehler geschehen, der dafür sorgt, dass die Daten nicht so geschrieben, geändert, gelöscht oder gelesen werden, wie Sie es geplant haben, gibt es kaum Möglichkeiten, dies zu prüfen. Am heimischen Rechner mit Access-Vollversion würden Sie nun munter durch die Zeilen fliegen und hier und da Werte prüfen, aber die Runtime macht Ihnen in diesem Fall einen Strich durch Rechnung. Herkömmliche Fehler wie Laufzeitfehler können Sie zumindest durch eine geeignete Fehlerbehandlung orten, bei logischen Fehlern, die sich auf die Daten auswirken, hilft jedoch meist nur ein Blick auf die Daten selbst.

Nun bietet die Runtime-Version von Access quasi keinen Komfort, sofern Sie nicht selbst dafür gesorgt haben: keine Menüleisten, kein Ribbon, kein Datenbankfenster und keine Navigationsleiste. Das Öffnen einer Tabelle oder Abfrage zum schnellen Prüfen der gespeicherten Daten ist ohne Hilfsmittel quasi unmöglich. Deshalb wollen wir in diesem Beitrag ein Formular erstellen, das das Öffnen der vorhandenen Tabellen und Abfragen sowie ergänzend der Formulare und Berichte erlaubt.

Dieses Formular soll der Benutzer nicht öffnen können – Sie wissen ja: Daten werden nur über Formulare bearbeitet. Und damit nur Sie Zugriff darauf erhalten, legen wir zunächst ein AutoKeys-Makro fest, mit dem Sie das Formular unsichtbar öffnen. Um das Formular sichtbar zu machen, müssen Sie noch eine zusätzliche Buchstabenkombination eingeben.

Das Formular selbst soll die Datenbankobjekte auf vier Registerseiten anzeigen. Für den schnellen Überblick zeigen wir diese in Listenfeldern an, das Öffnen der jeweiligen Objekte gelingt per Doppelklick auf den entsprechenden Eintrag.

Objekt-Register

Das Formular namens frmDatenbankobjekte statten Sie zunächst mit einem Register-Steuerelement namens regDatenbankobjekte aus. Dieses erhält vier Registerseiten, die Sie mit Tabellen, Abfragen, Formulare und Berichte betiteln (s. Bild 1).

pic001.png

Bild 1: Formular mit Registersteuerelement zur Anzeige der verschiedenen Objekttypen

Da das Formular selbst nicht an Daten gebunden und die Größe des Registersteuerelements konstant bleiben soll, stellen wir die vier Eigenschaften Datensatzmarkierer, Navigationsschaltflächen, Trennlinien und Bildlaufleisten sämtlich auf den Wert Nein ein.

Nun fügen Sie das erste Listenfeld hinzu. Es soll lstTabellen heißen und alle in der aktuellen Datenbank vorhandenen Tabellen anzeigen.

Hier stellt sich die Frage: Sollen Systemtabellen ebenfalls aufgenommen werden Und sollen lokale und verknüpfte Tabellen entsprechend gekennzeichnet werden Eigentlich kann das nicht schaden.

Wenn es sich um eine Datenbank mit sehr vielen Elementen handelt, ließe sich eventuell ein Filter einrichten, der die Systemtabellen ausblendet oder wahlweise lokale und verknüpfte Tabellen anzeigt.

Wir belassen es jedoch bei einer einfachen Markierung der entsprechenden Objekte und fügen ein Suchfeld hinzu, mit dem die enthaltenen Objekte rasch per Eingabe einzelner Zeichen gefiltert werden können.

Jede Registerseite soll ein eigenes Suchfeld erhalten, damit der Filter beim Hin- und Herblättern erhalten bleibt und nicht jedes Mal neu eingegeben werden muss.

Das Textfeld zur Eingabe des Suchbegriffs heißt für die Tabellen txtSchnellsucheTabellen, das Listenfeld lstTabellen (s. Bild 2). Damit das Listenfeld gleich beim Öffnen des Formulars alle Tabellen anzeigt, hinterlegen Sie für die Ereigniseigenschaft Beim Laden eine entsprechende Ereignisprozedur. Diese enthält folgende Anweisungen:

pic002.png

Bild 2: Das Suchfeld soll die angezeigten Tabellen schnell filtern.

Private Sub Form_Load()
    Me!regDatenbankobjekte.FontName = "Calibri"
    Me!lstTabellen.RowSource = _
        "SELECT Name FROM MSysObjects WHERE Type = 1"
End Sub

Die erste Anweisung stellt die Schriftart für die Titelzeile der Registerseite auf Calibri ein (zumindest Access 2010 weigert sich standhaft, diese Einstellung zu speichern).

Die zweite legt als Datensatzherkunft des Listenfeldes eine Abfrage fest, die den Wert des Feldes Name aller Einträge der Systemtabelle MSysObjects liefert, deren Feld Type den Wert 1 hat – was wiederum einer Tabelle entspricht.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar