Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2003.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

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). (

Rich Text in Access

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.

Einsatz des RTF2 Active Control

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

    Speichern von RTF-Texten in Tabellen

    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.

    Anpassen des Steuerelements

    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

    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.

    Anzeige des RTF-Textes im
    Bericht

    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

    Fügen Sie dem Detailbereich eines neuen Berichts das RTF2-Steuerelement hinzu. Die Vorgehensweise ist die Gleiche wie beim Formular. Nach dem Hinzufügen des Steuerelements wählen Sie die Tabelle tblRTF als Datenherkunft des Berichtes und das Feld RTFINhalt als Steuerelementinhalt für das RTF-Steuerelement aus.

    Das Ergebnis finden Sie in Abb. 6. Die Anzeige erfolgt mit den festgelegten Formatierungen.

    Abb. 6: Anzeigen eines RTF-Textes per Bericht

    Größenanpassung des
    Steuerelements

    Das RTF2-Steuerelement bringt keine Vergrößerbar- beziehungsweise Verkleinerbar-Eigenschaft mit. Das bedeutet, dass Sie mit einem Trick arbeiten müssen.

    Wenn Sie die Größe des Steuerelements und auch des Detailbereiches dynamisch an den Inhalt des Steuerelements anpassen möchten, gehen Sie folgendermaßen vor:

  • Öffnen Sie den Bericht in der Entwurfsansicht.
  • Stellen Sie die Eigenschaft Größe des Detailbereiches auf den maximalen Wert von 55,871cm und die Eigenschaften Vergrößerbar und Verkleinerbar auf Ja ein.
  • Erstellen Sie ein Textfeld, dessen Eigenschaften Oben und Höhe die Werte 0cm beziehungsweise 55,871cm haben. Stellen Sie die Eigenschaften Vergrößerbar und Verkleinerbar ebenfalls auf den Wert Ja sowie Sichtbar auf Nein ein.
  • Legen Sie für die Ereigniseigenschaft Beim Formatieren des Detailbereichs die Prozedur aus Quellcode 3 an. (
  • Private Sub Detailbereich_Format(Cancel _
        As Integer, FormatCount As Integer)

        Me!ctlRTF.Height = _
        Me!ctlRTF.RTFheight

    End Sub

    Quellcode 3

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    Verwandte Beiträge:

    Berichte manuell füllen

    Termine in Berichten darstellen

    Gruppensummen ohne Gruppen im Berichtsfuß

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.