Tabellen [basics]: Memofelder oder Langer Text

Eigentlich sind die Textfelder unter Access der perfekte Ort, um Texte zu speichern. Allerdings haben sie eine entscheidende Einschränkung: Sie können nur maximal 255 Zeichen aufnehmen. Damit ist uns natürlich nicht geholfen, wenn wir längere Texte wie beispielsweise Produktbeschreibungen unterbringen wollen. Glücklicherweise gibt es noch einen weiteren Textdatentyp unter Access, der früher Memofeld hieß und der heutzutage im Tabellenentwurf unter dem Namen Langer Text auswählbar ist. Hier können wir weitaus mehr Zeichen speichern (die genaue Zahl ist nicht genau definiert, aber wir können laut offiziellen Angaben maximal 1.048.576 Zeichen darin speichern. Das gelingt jedoch nicht unter allen Umständen. Davon ab bieten Memofelder noch eine Reihe spannender Features, die wir uns ebenfalls in diesem Artikel und in noch einem weiteren Artikel ansehen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank TabellenBasics_Memofelder.accdb.

Memofeld anlegen

Ein Memofeld legen wir wie ein übliches Tabellenfeld an. Der Unterschied ist, dass wir hier den Felddatentyp Langer Text auswählen (wenn du mit einer sehr alten Access-Version arbeitest, heißt der Datentyp Memofeld).

Das Memofeld enthält einige Eigenschaften, die wir bereits vom Textfeld kennen wie Format, Beschriftung, Standardwert, Gültigkeitsregel, Gültigkeitsmeldung, Eingabe erforderlich, Leere Zeichenfolge, Indiziert, Unicode-Kompression, IME-Modus, IME-Satzmodus und Textausrichtung, die wir hier nicht erneut beschreiben wollen (siehe Bild 1).

Ein Memofeld mit seinen Eigenschaften

Bild 1: Ein Memofeld mit seinen Eigenschaften

Spannend wird es bei den beiden Eigenschaften Textformat und Nur anfügen, die wir uns später und in einem weiteren Artikel im Detail ansehen werden. Erst einmal wollen wir jedoch herausfinden, wieviele Zeichen nun in einem Memofeld Platz finden.

Maximale Textlänge ermitteln

Es ist nicht ganz trivial, herauszufinden, wie viel Zeichen in ein Memofeld passen. Es ist nämlich von der jeweiligen Art, wie wir die Daten hinzufügen, abhängig. Wir haben verschiedene Arten ausprobiert.

  • Wenn wir beispielsweise eine lange Zeichenkette in einem Texteditor aus sich immer wiederholenden Zeichen zusammenstellen und diesen direkt in eine Tabelle mit einem Memofeld einfügen, landen wir bei knapp 64.000 Zeichen, bevor wir keine weiteren Zeichen eingeben können.
  • Wenn wir direkt eine lange Zeichenkette einfügen, erscheint für Zeichenketten, die rund 64.000 Zeichen und mehr enthalten, die Fehlermeldung aus Bild 2.
  • Überschreiten der maximalen Zeichenanzahl beim Einfügen in ein Memofeld

    Bild 2: Überschreiten der maximalen Zeichenanzahl beim Einfügen in ein Memofeld

  • Dann haben wir über eine Prozedur Texte per VBA direkt in ein Memofeld hineingeschrieben. Damit konnte wir wesentlich mehr Zeichen einfügen.

Dies ist die Prozedur, die wir im Formular frmMemofelder genutzt haben, um die maximale Anzahl von Zeichen für ein Memofeld zu ermitteln:

Private Sub cmdFuellen_Click()
     Dim strLangerText As String
     Dim l As Long
     For l = 1 To 1000000
         Me.Bezeichnung = l
         strLangerText = strLangerText & Format(l, _
             "0000000000")
         Me!Memotext = strLangerText
         DoEvents
     Next l    
End Sub

Die Prozedur fügt in einer Schleife über 100.000 Interationen jeweils einen neuen, aus zehn Zeichen bestehenden Ausdruck hinten an die Zeichenkette strLangerText an und trägt diesen dann in das Feld Memotext ein. Die Prozedur haben wir irgendwann gestoppt, aber es war möglich, mehr als 1.000.000 Zeichen in das Memofeld einzufügen – wie beschrieben allerdings nur mit Unterstützung von VBA.

Die Eigenschaft Textformat

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