Formatierte Texte in Berichten

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

André Minhorst, Duisburg

Eines der größten Hindernisse bei der Verschmelzung von Datenbankanwendung und Textverarbeitung ist die fehlende Fähigkeit von Access, formatierte Texte zu verarbeiten. Dies ist aber zum Beispiel mit RTF-Editoren möglich, die es auch als ActiveX-Steuerelemente für Access gibt. Von den zwei bekanntesten Alternativen „Total Access Memo“ und „RTF2 Active Control“ lernen Sie im vorliegenden Beitrag das Letztere, Kostenlose kennen. Mit ein paar Tricks ist es damit sogar möglich, mehrseitige Dokumente mit sauberen Umbrüchen auf den Seiten eines Berichts zu verteilen.

Hinweis

Sie finden die Beispieldatenbanken RTF97.mdb (Access 97) und RTF00.mdb (Access 2000 und höher) auf der beiliegenden Heft-CD im Verzeichnis \mdb oder im Bereich Magazine von www.access-im-unternehmen.de. Bitte beachten Sie, dass für die Verwendung der Beispieldatenbanken die Installation eines zusätzlichen Steuerelements erforderlich ist (s. Kapitel 1).

Die Darstellung von Texten mit unterschiedlich formatierten Bereichen ist mit den Bordmitteln von Access nur in bestimmten Fällen möglich – nämlich bei der Verwendung unterschiedlicher Steuerelemente für die verschiedenen Textformatierungen. Da dies nicht praxisrelevant ist, behilft man sich externer Steuerelemente.

Rich Text-Steuerelemente

Das Rich Textbox Control von Microsoft kann zur Eingabe von Texten im RTF-Format in Formularen, aber nicht zu deren Ausgabe in Berichten verwendet werden.

Eine kostenpflichtige Alternative ist das Steuerelement Total Access Memo von FMS. Es kann in Formularen und Berichten eingesetzt werden, schlägt aber mit knapp 300 Euro für eine einzelne Lizenz zu Buche. Dafür kann es als Bestandteil eigener Lösungen kostenlos verteilt werden (weitere Informationen unter www.fmsinc.com).

Die Freeware-Alternative heißt RTF2 Active Control und ist bei Stephen Lebans unter www.lebans.com erhältlich. Da es sich hierbei um ein kostenloses Steuerelement handelt, soll es im vorliegenden Beitrag vorgestellt werden.

Wozu Rich Text

Access lässt an keiner Stelle unterschiedlich formatierte Texte innerhalb eines Standardsteuerelements beziehungsweise Tabellenfeldes zu – es sei denn, Sie verwenden ein OLE-Feld und bringen dort ein Word-Dokument oder ähnliches unter. Für manche Anwendungen ist es aber durchaus sinnvoll, mit unterschiedlichen Formatierungen zu arbeiten. Eine dieser Anwendungen ist die in der vorliegenden Ausgabe von Access im Unternehmen vorgestellte Musterlösung zum Verwalten von Briefen.

Technik von Rich Text in Access

Die erwähnten RTF-Steuerelemente dienen zum Eingeben, Bearbeiten und Formatieren von Texten. Die beiden Letzteren und damit auch das hier vorgestellte RTF2 Active Control können außerdem in Berichten verwendet werden. Sollen die eingegebenen Texte inklusive Formatierungen in einer Tabelle gespeichert werden, ist dazu ein Memofeld erforderlich. Dort speichert Access den Inhalt des Steuerelements inklusive der benötigten Angaben zur Formatierung. Das Steuerelement wandelt die Steuerzeichen zur Anzeige in Formularen und Berichten entsprechend um.

Das RTF2 Active Control kann von der Internetseite von Stephan Lebans (www.lebans.com) heruntergeladen werden. Nach dem Entpacken und Installieren steht das Steuerelement in Access in der Liste der ActiveX-Steuerelemente zur Verfügung.

RTF im Formular

Um das Steuerelement einem Formular hinzuzufügen, gehen Sie folgendermaßen vor:

  • öffnen Sie das Formular in der Entwurfsansicht.
  • Bild 1: Das RTF2-Steuerelement in der Entwurfsansicht

    Bild 2: Formateinstellungen per Kontextmenü

  • Rufen Sie den Dialog ActiveX-Steuerelement einfügen über den Menüeintrag Einfügen/ActiveX-Steuerelement… auf.
  • Wählen Sie hier den Eintrag RTF2 Control aus.
  • Passen Sie die Größe Ihren Wünschen entsprechend an (siehe Bild 1). (
  • Das RTF-Steuerelement in Aktion

    Wenn Sie das Formular nun in der Formularansicht anzeigen, können Sie zunächst einmal recht wenig mit dem Steuerelement anstellen. Ein Klick mit der rechten Maustaste öffnet aber direkt das Kontextmenü (siehe Bild 2). Damit lassen sich alle benötigten Formateinstellungen vornehmen (vorausgesetzt, Sie möchten mit Access keine mehrspaltigen Bücher schreiben – in diesem Fall sei Ihnen die Verwendung von Word empfohlen).

    Wenn Sie den mit dem Steuerelement eingegebenen Text in einer Tabelle speichern möchten, müssen Sie zunächst die Datenherkunft des Formulars auf die Tabelle einstellen und die Eigenschaft Steuerelementinhalt des RTF2-Steuerelements auf das Feld einstellen, in dem die Daten gespeichert werden sollen.

    Erstellen Sie zu Testzwecken eine Tabelle wie in Bild 3. öffnen Sie das Formular mit dem RTF2-Steuerelement in der Entwurfsansicht und stellen Sie die Eigenschaft Datenherkunft auf den Wert tblRTF ein.

    Aktivieren Sie das RTF2-Steuerelement und wählen Sie für die Eigenschaft Steuerelementinhalt den Eintrag RTFInhalt aus.

    Wechseln Sie nun in die Formularansicht und geben Sie einen beliebigen Text ein. Wenn Sie nach der Aktualisierung des Datensatzes die Tabelle öffnen, finden Sie die Fassung des Textes inklusive Formatdefinition vor (siehe Bild 4).

    Wie hier gut zu erkennen ist, schart sich eine Menge kryptisch anmutendender Steuerelemente rund um den eigentlichen Text. Prinzipiell ähnelt RTF der Sprache HTML: Es gibt einen Kopf mit allgemeinen Informationen und verschiedene Absätze, denen absatzweit gültige Steuerelemente vorangestellt sind und die auch innerhalb des Textes Steuerelemente zur speziellen Auszeichnung bestimmter Textelemente enthalten können.

    Das RTF2-Steuerelement enthält eine eigene Bibliothek von Methoden und Eigenschaften, mit denen sich das Steuerelement anpassen lässt. Einen Großteil der Möglichkeiten können Sie anhand der beiden ebenfalls auf der Internetseite von Stephen Lebans erhältlichen Beispieldatenbanken kennen lernen. Die beiden Beispieldatenbanken für Access 97 und Access 2000 enthalten speziell auf dieses Steuerelement zugeschnittene Menüleisten, die die Anwendung der zur Verfügung stehenden Eigenschaften ausreichend dokumentieren.

    Falls Sie keine Menüleiste verwenden möchten, sondern mit im Formular integrierten Schaltflächen vorlieb nehmen, sollten Sie Folgendes beachten: Die Ausstattung von Schaltflächen mit Symbolen ist nur beschränkt möglich.

    Bild 3: Tabelle zum Speichern von RTF-Texten

    Bild 4: Ein RTF-Text im Memofeld einer Tabelle

    Da Microsoft mit Windows XP vom ehemaligen Einheitsgrau für Schaltflächen auf ein anderes Grau wechselte, führt die Verwendung von eigenen Schaltflächen zu optischer Verwirrung:

    Der Hintergrund der Schaltflächen passt sich nämlich nicht dem neuen Grau an und hinterlässt damit einen sehr unprofessionell wirkenden Eindruck.

    Die Verwendung von Schaltflächen auf einer Symbolleiste ist also zumindest dann sinnvoller, wenn Sie keinen Text, sondern Symbole zur Beschreibung der jeweiligen Funktion verwenden möchten.

    Hinweis

    Weitere Hinweise zur Erstellung von benutzerdefinierten Menüleisten erhalten Sie in den Beiträgen Dynamische Menüs mit VBA in Ausgabe 4/2003 und Benutzerabhängige Befehlsleisten in der vorliegenden Ausgabe von Access im Unternehmen.

    Funktionen zur Formatierung

    Ob Sie die Formatierung nun per Formular- oder Menüleistenschaltfläche anpassen möchten, bleibt Ihren persönlichen Vorlieben überlassen.

    Tatsache ist, dass Sie die Funktionen zur Durchführung der Formatänderungen bereitstellen müssen.

    Zur Nutzung des vollen Befehlsumfangs eines Steuerelements lohnt sich immer ein Blick in den Objektkatalog. Dazu aktivieren Sie das Testfenster (am schnellsten über die Tastenkombination Strg + G) und betätigen dann die Taste F2.

    Im nun erscheinenden Objektkatalog (siehe Bild 5) wählen Sie den Eintrag RTF2Lib aus dem oberen Kombinationsfeld aus. Die Klasse RTF2 enthält eine übersicht über alle Methoden und Eigenschaften des Steuerelements, die übrigen Einträge sind Auflistungen von möglichen Parametern für einige Eigenschaften.

    Bild 5: Der Objektkatalog von Access

    Public Function Fett()
        Dim Markierung As Object
        On Error Resume Next
        Set Markierung = Screen.ActiveControl
        If Not Markierung Is Nothing Then
            Markierung.FontBold = True
        End If
        Set Markierung = Nothing
    End Function

    Quellcode 1

    Public Function Schriftart()
        Dim Markierung As Object
        Dim Objekt As Object
        On Error Resume Next
        Set Markierung = Screen.ActiveControl
        If Not Markierung Is Nothing Then
            Set Objekt = Markierung.SelFont
            Set Objekt = Nothing
        End If
        Set Markierung = Nothing
    End Function

    Quellcode 2

    Sie benötigen nun nur noch die Information, wie Sie auf die aktuelle Markierung im RTF2-Steuerelement zugreifen können. Dazu verwenden Sie den folgenden Ausdruck:

    Screen.ActiveControl

    Er bezieht sich auf das jeweils aktuelle Steuerelement. Wenn das RTF-Steuerelement aktiv ist, wirken sich die Formatierungen auf die jeweils markierten Bereiche des Steuerelements aus.

    Hinweis

    Die in der Beispieldatenbank vorhandenen Funktionen zur Durchführung sind weitgehend den Beispieldatenbanken von Stephen Lebans entnommen und geringfügig angepasst worden.

    Als Beispiel für die Funktion der unterschiedlichen Formatierungsfunktionen des Steuerelements dient das aus Quellcode 1. Die Funktion weist der Variablen Markierung das aktuelle Steuerelement hinzu, was gleichbedeutend mit der aktuellen Markierung ist. Sie überprüft, ob die Markierung nicht leer ist und führt dann die Formatierung für den markierten Bereich durch.

    Einige Formatierungen können über den herkömmlichen Schriftarten-Dialog vorgenommen werden. Mit der Prozedur aus Quellcode 2 können Sie diesen Dialog aufrufen und die getroffenen Einstellungen auf die Markierung anwenden.

    Der Grund für die Verwendung von Daten im RTF-Format ist die formatierte Ausgabe von Texten per Bericht. Das bringt einige Probleme mit, die sich allerdings mit ein wenig Programmieraufwand umgehen lassen. In den folgenden Abschnitten erfahren Sie, wie Sie mit dem RTF2-Steuerelement erstellte Texte optimal in Berichten anzeigen.

    Erstellen des Berichts

    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