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 3/2012.

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

Zusammenfassung

Lernen Sie ein Add-In kennen, mit dem Sie VBA-Code zum Erstellen vorgegebener Texte erstellen.

Techniken

Add-Ins, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

TextToString.mda

Shortlink

www.access-im-unternehmen.de/838

Vom Text zum String per Access-Add-In

André Minhorst, Duisburg

Manche Aufgaben erledigt man selten, aber dafür nerven sie umso mehr. Bei mir ist das beispielsweise der Fall, wenn ich einen mehrzeiligen Text per VBA zusammenstelle - beispielsweise, um den Text für eine E-Mail vor der Weitergabe an Outlook dynamisch zu erzeugen. Gerade wenn dieser Text mehrzeilig ist und zusätzlich zwischendrin leere Zeilen enthält, braucht man doch einige Anläufe, bis das Ergebnis den Wünschen entspricht. Mit dem hier vorgestellten Add-In geben Sie solche Texte einfach in ein Textfeld ein. Den Code zum Zusammenfügen des Textes erstellt das Add-In automatisch.

Das Add-In im Überblick

Das Add-In ist ein Menü-Add-In und lässt sich dementsprechend über den Menüeintrag Extras|Add-Ins|TextToString beziehungsweise den Ribbon-Eintrag Datenbanktools|Add-Ins|Add-Ins|TextToString starten (mit dem dortigen Eintrag Add-In-Manager installieren Sie das Add-In übrigens). Es erscheint das Fenster aus Abb. 1. Dieses erlaubt im Wesentlichen die Eingabe des umzusetzenden Textes in das obere Textfeld - die Abbildung zeigt einen Beispieltext. Das untere Textfeld liefert bereits während der Eingabe einige Zeilen Code, die den Text zeilenweise in eine vom Benutzer festzulegende Variable schreiben. Im oberen Bereich bietet das Add-In noch einige Optionen für folgende Einstellungen an:

pic002.png

Abb. 1: Formular des Add-Ins TextToString

  • Definieren des Namens der zu verwendenden Variablen
  • Festlegen, ob eine Deklarationszeile für diese Variable hinzugefügt werden soll
  • Angeben der Anzahl der Zeichen für die Einrückung des Codes
  • Festlegen, ob die Zeilenumbruch-Codes (vbCrLf) für leere Zeilen in eine eigene Zeile geschrieben werden oder an die vorherige Zeile angehängt werden
  • Speichern von Textbausteinen
  • Einfügen gespeicherter Textbausteine

Die Basisfunktion der Anwendung besteht im Überführen der in das Textfeld txtText geschriebenen Texte in Codezeilen. Schauen wir uns folgenden Text als Beispiel an:

Hallo Herr Müller,

im Anhang erhalten Sie Ihre Daten.

Viele Grüße

André Minhorst

Daraus soll folgender Code entstehen:

Dim strText As String

strText = strText & "Hallo Herr Müller," & vbCrLf

strText = strText & vbCrLf

strText = strText & "im Anhang erhalten Sie Ihre Daten." & vbCrLf

strText = strText & vbCrLf

strText = strText & "Viele Grüße" & vbCrLf

strText = strText & "André Minhorst" & vbCrLf

Alternativ sollen die vbCrLf für leere Zeilen direkt an die vorherige Zeile angehängt werden:

Dim strText As String

strText = strText & "Hallo Herr Müller," & vbCrLf & vbCrLf

strText = strText & "im Anhang erhalten Sie Ihre Daten." & vbCrLf & vbCrLf

strText = strText & "Viele Grüße" & vbCrLf

strText = strText & "André Minhorst" & vbCrLf

Dies ist, wenn Sie den Code selbst erstellen, erstens eine stumpfsinnige und zweitens fehleranfällige Arbeit. Mit dem Add-In TextToString geben Sie den gewünschten Text einfach in das obere Textfeld ein und kopieren den fertigen Code aus dem unteren Textfeld an die entsprechende Stelle im VBA-Code.

Das Formular frmTextToString sieht im Entwurf wie in Abb. 2 aus. Die beiden großen Textfelder heißen txtText und txtString, das Textfeld zur Eingabe des Variablennamens txtVariable, das Kontrollkästchen zur Angabe, ob die verwendete Variable deklariert werden soll, chkVariableDeklarieren. Wichtig ist hier, dass Sie die Eigenschaft Eingabetastenverhalten für das Textfeld txtText auf den Wert Neue Zeile in Feld einstellen. Dadurch kann der Benutzer Zeilenumbrüche mit der Eingabetaste eingeben statt mit der sonst notwendigen Tastenkombination Strg + Eingabetaste.

pic001.png

Abb. 2: Add-In-Formular in der Entwurfsansicht

Das Kontrollkästchen chkUmbruchEigeneZeile legt fest, ob die vbCrLf in eine eigene Zeile geschrieben werden soll und das Textfeld txtEinrueckung bestimmt die Anzahl der Zeichen, um welche alle Zeilen eingerückt werden (standardmäßig sind es vier). Fehlt noch die Schaltfläche cmdBausteinSpeichern, mit der Sie die aktuelle Markierung im Textfeld txtText speichern und das Kombinationsfeld cboBausteine, mit der Sie einen gespeicherten Baustein an der beziehungsweise für die aktuell markierte Stelle im Text einfügen.

Texteingabe

Das wichtigste Ereignis für das Add-In ist das Ereignis, das beim Ändern des Inhalts des Textfelds txtText ausgelöst wird. Es sieht wie folgt aus und erledigt drei Anweisungen:

Private Sub txtText_Change()

    strText = Me!txtText.Text

    strVariable = Nz(Me!txtVariable)

    StringZusammenstellen

End Sub

Die erste Anweisung speichert den aktuellen Text in der Variablen strText zwischen und den im Textfeld txtVariable enthaltenen Variablennamen in der Variablen strVariable. Damit im Gepäck wird die Prozedur StringZusammenstellen aufgerufen, die den Hauptteil der Arbeit erledigt und die wir uns gleich ansehen. Die beiden Variablen strText und strVariable werden modulweit, also im Kopf des Klassenmoduls deklariert:

Dim strText As String

Dim strVariable As String

Auch beim Ändern der Variablen im Textfeld txtVariable soll der Code im Textfeld txtString gleich angepasst werden.

Die beim Ändern ausgelöste Prozedur sieht prinzipiell genauso aus wie die zuvor beschriebene, nur dass nun der aktuelle Inhalt von txtVariable mit der Text-Eigenschaft ausgelesen wird:

Private Sub txtVariable_Change()

    strText = Nz(Me!txtText)

    strVariable = Me!txtVariable.Text

    StringZusammenstellen

End Sub

Die drei übrigen Steuerelemente chkUmbruchEigeneZeile, chkVariableDeklarieren und txtEinrueckung lösen einfach nur die Prozedur StringZusammenstellen aus:

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:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.