Über den Umgang mit Hyperlinks in Microsoft Access (VBA)

No comment

Hyperlinkfelder in Tabellen sind eine praktische Angelegenheit. Ohne große Mühe lassen sich Hyperlinks zu Webseiten oder Ordnern erstellen, verwalten und aufrufen. So einfach die Bearbeitung in Access auch ist, desto mühseliger ist das Verstehen der Hintergrundstruktur, wenn man den Prozess mit VBA anpassen oder automatisieren möchte.

Dabei ist das automatisierte Bearbeiten in Formularen eigentlich relativ einfach. Hyperlinkfelder in Tabellen sind nichts weiter als ein Datentyp (der Hyperlink-Datentyp). Dieser ist zusammengesetzt aus bis zu maximal vier Zeichenketten.

Diese Zeichenketten werden nach Syntax mit einer # separiert.
Hierbei ist zu beachten das nur eine dreiteilige Trennung möglich ist. Der vierte Teil ergibt sich dann in der Regel automatisch, da Access Kombinationen der drei Teile zum vierten Teil konstruiert.

Die Syntax lautet:

"Anzeigetext"#"Adresse"#"Unteradresse(Anker)"

…wobei nur der mittlere Teil Adresse zwingend ist und den zu folgenden Hyperlinkpfad darstellt. Der Formalität wegen sollten jedoch die Rauten immer gesetzt werden auch wenn Access den Hyperlink auch ohne erkennt.

Also im Zweifelsfall immer:

#"Adresse"#

…um den Hyperlink eindeutig als solchen im Hyperlink-Datenfeld zu definieren.

Access begrenzt uns zwar den Hyperlink auf vier Teile, allerdings können diese vier Teile unterschiedliche Informationen enthalten. Die VBA Referenz nennt uns hier sechs verschiedene Eigenschaften des Hyperlinks.

Name Wert (Syntaxreihenfolge) Beschreibung
acDisplayedValue 0 Der unterstrichene Anzeigetext des Hyperlinks
acDisplayText 1 Nur der Anzeigetext
acAddress 2 Der eigentliche Hyperlinkpfad
acSubAddress 3 Ein Anker oder eine Unteradresse
acScreenTip 4 Ein PopUp mit Text beim Überfahren des Hyperlinks mit dem Mauszeiger
acFullAddress 5 Der aus acAddress und acSubAddress bestehende komplette Pfad.

 

Visuell ausgedrückt, gestaltet sich dann der Hyperlink folgendermaßen:

accesshyperlinks

Struktur eines Hyperlinks in Access

Wobei zu beachten ist…

  • acDisplayedValue und acDisplayText unterscheiden sich lediglich durch die Unterstreichung des Texts
  • acFullAddress ist ein zusammengesetzter Wert aus acAddress und AcSubAddress
  • acSubAddress und acScreenTip können kombiniert werden, acScreenTip wird dann auromatisch zu acDisplayedValue, welcher nicht in der Syntax angegeben wird.

Und wie bekomme ich jetzt einen Hyperlink mit VBA erstellt?

 

Nichts einfacher als das. Wenn mit Variablen gearbeitet wird, sollten diese in der Regel als String definiert sein. Der Eintrag kann über die altbekannte Value Eigenschaft erfolgen.

'Beispiel für den AutoEintrag in ein Formular
Private Sub TextBox_Click()
 
Dim Anzeigetext as String
Dim Hyperlinkadresse as String
Dim Anker as String

Anzeigetext = Link
Hyperlinkadresse = http://www.deineAdresse.de
Anker = Lesezeichen

TextBox.Value = Anzeigetext & "#" & Hyperlinkadresse & "#" & Anker

End Sub

Man erhält im Hyperlink die Adresse http://www.deineAdresse.de#Lesezeichen mit dem Anzeigetext ,,Link“ zusätzlich erstellt Access hierbei acFullAddress und gibt den Anzeigetext sowohl als DisplayedValue oder DiplayText aus.

Praxisbeispiel für das Einfügen eines Hyperlinks mit VBA

Und wie kann ich einzelne Eigenschaften des Hyperlink-Datentyps auslesen?

Das erledigen die HyperlinkPart Funktion oder die Hyperlink Eigenschaften von Objekten wie der TextBox.

In diesem Tutorial sind die Mechanismen sehr gut erklärt.