Formatierte Texte in Berichten

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.
  • Abb. 1: Das RTF2-Steuerelement in der Entwurfsansicht

    Abb. 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 (s. Abb. 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ü (s. Abb. 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 Abb. 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 (s. Abb. 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.

    Abb. 3: Tabelle zum Speichern von RTF-Texten

    Abb. 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 (s. Abb. 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.

    Abb. 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

    Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
    Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
    Zur Bestellung ...
    Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
    Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar