Rich-Text ab Access 2007

Mit Access 2007 hat Access die Möglichkeit eingeführt, Rich-Text in Memofelder einzugeben. Diese Neuerung ist beachtenswert: Es geht nicht um das üblicherweise mit der Dateiendung .rtf abgekürzte Format, sondern um eine abgespeckte HTML-Variante. Außerdem ist interessant, dass auf diese Weise formatierte Inhalte von Memofeldern sowohl in Formularen als auch in Berichten korrekt angezeigt werden. Dieser Beitrag zeigt, wie Sie mit der Access Rich Text-Feldern arbeiten.

Access Rich Text Felder

Wenn Sie ab Access 2007 formatierte Texte eingeben möchten, müssen Sie zunächst eine Tabelle mit einem entsprechenden Feld versehen.

In unserem Fall verwenden wir eine Beispieltabelle namens tblRichtext, welche die beiden Felder RichtextID und Richtext enthält. Richtextfelder müssen grundsätzlich den Felddatentyp Memo aufweisen.

Wenn Sie die Tabelle speichern und zur Datenblattansicht wechseln, können Sie wie üblich Text in die Tabelle eingeben. Von Richtext keine Spur: Wenn Sie eine der Formatierungsfunktionen aus dem Ribbon nutzen, während der Fokus auf dem Memofeld liegt, ändern Sie lediglich die Formatierung der kompletten Tabelle. Andere Formatierungsmöglichkeiten erscheinen hier noch nicht (s. Bild 1).

Tabelle mit Richtext-Feld in der Entwurfsansicht

Bild 1: Tabelle mit Access Rich Text-Feld in der Entwurfsansicht

Die Verwendung eines Memofeldes allein reicht also anscheinend noch nicht aus: Sie müssen außerdem die Eigenschaft Textformat dieses Feldes auf Rich-Text einstellen (s. Bild 2).

Anpassen der Tabelleneigenschaften per Ribbon

Bild 2: Anpassen der Tabelleneigenschaften eines Access Rich Text-Feldes per Ribbon

Beim Wechsel zum Rich-Text-Format zeigt Access eine Meldung an. Diese weist darauf in, dass die enthaltenen Texte in das HTML-Format umgewandelt werden (s. Bild 3).

Diese Meldung erscheint, wenn Sie ein Memofeld mit der Richtext-Formatierung ausstatten.

Bild 3: Diese Meldung erscheint, wenn Sie ein Memofeld in ein Access Rich Text-Feld ausstatten.

Das Fehlen der Möglichkeit zum Formatieren des im Memofeld eingegebenen Textes liegt allerdings wohl auch daran, dass wir hier nicht mit Word arbeiten, sondern mit der einfachen Datenblattansicht zum Bearbeiten der Daten einer Access-Tabelle. Sie können hier lediglich Texte formatieren, die Sie zuvor markiert haben. Also markieren Sie beispielsweise das Wort Memofeldes wie in Bild 4 und – siehe da – schon erscheint ein kleines Popup-Menü, das die möglichen Formatierungen liefert!

Die Rich-Text-Formatierungsmöglichkeiten erscheinen erst nach dem Markieren eines oder mehrerer Zeichen.

Bild 4: Die Formatierungsmöglichkeiten eines Access Rich Text-Feldes erscheinen erst nach dem Markieren eines oder mehrerer Zeichen.

Formatierungen per Ribbon-Befehl

Bei dieser Gelegenheit probieren wir vielleicht doch nochmal die Formatierungswerkzeuge im Ribbon aus … und siehe da: Sobald das Memofeld tatsächlich als Rich-Text-Feld ausgelegt ist, können Sie die Formatierungen auch über das Ribbon einstellen! Diese Werkzeuge haben also je nach Kontext zumindest zwei verschiedene Funktionen.

Schauen wir uns an, welche Formatierungen mit dem Memofeld im Rich-Text-Format möglich sind:

  • Schriftart
  • Schriftgröße
  • Fett
  • Kursiv
  • Unterstrichen
  • Schriftfarbe
  • Hintergrundfarbe
  • Absatzausrichtung: links, rechts und zentriert
  • Nummerierung
  • Aufzählungszeichen
  • Listenebene erhöhen und verringern (entspricht prinzipiell einer Einrückung vom linken Feldrand aus)

In Bild 5 haben wir einmal alle über das Menü erreichbaren Formatierungen vorgenommen (es gibt natürlich auch noch Kombinationen, etwa von fetter und kursiver Schrift). Mehr sollte man unter Access nicht benötigen.

Die verschiedenen Formatierungen im Rich-Text-Format

Bild 5: Die verschiedenen Formatierungen im Access Rich Text-Feld

HTML-Formatierungen

Nun heißt es, das Rich-Text-Format in Memofeldern von Access-Datenbanken sei eigentlich eine HTML-Formatierung. Wie können wir dies herausfinden? Als Erstes kopieren wir einfach den Inhalt des Memofeldes in den Direktbereich. Das Ergebnis: ernüchternd, hier wird nur der Text ausgeben, ohne HTML-Auszeichnungen. Wenn wir den Inhalt nach Word übertragen, bleibt immerhin die fette Formatierung erhalten.

Was aber, wenn wir einmal nicht den angezeigten Inhalt des Felds ausgeben, sondern den tatsächlichen Inhalt – und zwar über den Zugriff mit der DLookup-Funktion?

Wenn Sie die folgende Anweisung im Direktfenster absetzen, erhalten wir die Ausgabe aus Listing 1:

<div><font color=black>Beispiel mit allen Formatierungen:</font></div>
<div><font color=black><strong>Fetter Text</strong></font></div>
<div><font color=black><em>Kursiver Text</em></font></div>
<div><font color=black><u>Unterstrichener Text</u></font></div>
<div><font color=red>Roter Text</font></div>
<div><font color=black style="BACKGROUND-COLOR:#FFFF00">Text mit gelbem Hintergrund</font></div>
<div><font color=black>Ausrichtung links</font></div>
<div align=center><font color=black>Ausrichtung zentriert</font></div>
<div align=right><font color=black>Ausrichtung rechts</font></div>
<div><font color=black>Aufzählung:</font></div>
<ul>
<li><font color=black>Erster Punkt</font></li>
<li><font color=black>Zweiter Punkt</font></li>
<li><font color=black>Dritter Punkt</font></li>
</ul>
<div><font color=black>Nummerierung:</font></div>
<ol>
<li><font color=black>Erster Punkt</font></li>
<li><font color=black>Zweiter Punkt</font></li>
<li><font color=black>Dritter Punkt</font></li>
<ol>
<li><font color=black>Erster Unterpunkt</font></li>
<li><font color=black>Zweiter Unterpunkt</font></li>
</ol>
</ol>

Listing 1: Ausgabe des tatsächlichen Inhalts des Memofeldes

Debug.Print DLookup("Richtext",  "tblRichtext", "RichtextID = 3")

Das Ergebnis sieht nun doch schon stark nach HTML aus. Hier werden allerdings zumeist die reinen Textauszeichnungen verwendet. Strukturierende Elemente werden nur zur Darstellung der nummerierten und unnummerierten Listen verwendet. Zeilenumbrüche (etwa <br> oder Absätze <p>…</p>werden nicht erfasst.

Wenn Sie Texte von einer Internetseite in ein Memofeld im Rich-Text-Format kopieren, übernimmt das Rich Text-Feld ebenfalls nur die bereits erwähnten Formatierungen.

Rich-Text in Formularen

Wie verhalten sich Memofelder mit Rich-Text-Format im Formular? Die Antwort ist einfach: Es gibt keinen Unterschied zur Datenblattansicht einer Tabelle.

Das Formular frmRichTextGebunden ist an die Tabelle tblRichText gebunden und zeigt im Textfeld den Inhalt des Feldes RichText an (s. Bild 6). Wenn Sie eine Textpassage markieren, erscheint wie im Datenblatt das Popup-Menü zum Einstellen der Formatierung für den markierten Text.

Gebundenes Textfeld mit Rich-Text im Formular

Bild 6: Gebundenes Textfeld mit Rich-Text im Formular

Was noch nicht erwähnt wurde: Für Felder mit dem Felddatentyp Text steht die Eigenschaft Textformat im Tabellenentwurf gar nicht zur Verfügung. Wenn Sie hingegen ein Textfeld im Formular an ein herkömmliches Textfeld binden, zeigt das Eigenschaftsfenster die Eigenschaft Textformat an und liefert auch den Eintrag Rich-Text. Wenn Sie diesen allerdings auswählen, erscheint die Fehlermeldung aus Bild 7.

Der Wert Rich-Text steht zwar für herkömmliche Textfelder zur Verfügung, kann aber nicht eingestellt werden.

Bild 7: Der Wert Rich-Text steht zwar für herkömmliche Textfelder zur Verfügung, kann aber nicht eingestellt werden.

Rich-Text in ungebundenen Textfeldern

Wie sieht es mit ungebundenen Textfeldern in Formularen aus – lassen sich diese mit Rich-Text füllen Die Antwort lautet: Ja. Wie Bild 8 zeigt, lässt sich auch dort der Text formatieren.

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

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar