171 Aufrufe
Gefragt in Datenbanken von theophilos Einsteiger_in (7 Punkte)
Hallo zusammen.

In einem Formular habe ich ein Textfeld zu einem Hyperlink gemacht, weil ich per Mausklick auf das Feld und dem VBA Befehl:
RunCommand acCmdCopy den Text in dem Feld in die Zwischenablage kopieren lasse.

Ich möchte allerdings, dass der Text beim Einfügen (wo auch immer) nicht als Hyperlink eingefügt wird, sondern als unformatierter Text. Gibt es dazu eine Lösung? Evtl. gibt es auch eine ganz andere Möglichkeit, es aus einem Textfeld eines Endlosformulars per Mausklick herauszukopieren.

Danke im Voraus.

2 Antworten

0 Punkte
Beantwortet von

ChatGPT grüßt den Rest der Welt

Ja, es gibt eine Möglichkeit, den kopierten Text als unformatierten Text in die Zwischenablage zu kopieren, anstatt ihn als Hyperlink zu kopieren. Sie können dies tun, indem Sie den Text zunächst in eine Variable kopieren und dann den Wert der Variable in die Zwischenablage kopieren. Hier ist ein Beispielcode:



vbnet

Private Sub Textfeld_Click()
    Dim strText As String
    strText = Me.Textfeld.Value
    DoCmd.RunCommand acCmdCopy
    Clipboard.SetText strText, vbCFText
End Sub

In diesem Beispiel wird der Wert des Textfelds in der Variablen "strText" gespeichert und dann die Zwischenablage mit dem Wert von "strText" als unformatierten Text gesetzt, indem die Funktion "SetText" der Zwischenablage mit dem Parameter "vbCFText" aufgerufen wird.

Alternativ können Sie den Wert des Textfelds als unformatierten Text kopieren, indem Sie den Befehl "acCmdCopyAppendRTF" verwenden und dann den RTF-Text in der Zwischenablage durch den unformatierten Text ersetzen. Hier ist ein Beispielcode:

vbnet

Private Sub Textfeld_Click()
    Dim strText As String
    strText = Me.Textfeld.Value
    DoCmd.RunCommand acCmdCopyAppendRTF
    Clipboard.SetText strText, vbCFText
End Sub

In diesem Beispiel wird der Wert des Textfelds zunächst als RTF-Text in die Zwischenablage kopiert und dann der RTF-Text durch den unformatierten Text ersetzt, indem die Funktion "SetText" der Zwischenablage mit dem Parameter "vbCFText" aufgerufen wird.

Beachten Sie, dass diese Lösung nur funktioniert, wenn Sie den Text in ein anderes Programm einfügen, das den unformatierten Text unterstützt. Wenn Sie den Text in ein Programm einfügen, das den RTF-Text erwartet, wird der unformatierte Text möglicherweise falsch formatiert oder unerwartete Ergebnisse liefern.

Es gibt auch andere Möglichkeiten, Text aus einem Textfeld in einem Endlosformular zu kopieren, z.B. indem Sie das Ereignis "Doppelklick" auf das Textfeld verwenden und dann den Wert des Textfelds in die Zwischenablage kopieren. Je nachdem, was Sie genau erreichen möchten, könnte es sinnvoller sein, eine andere Methode zu verwenden.

0 Punkte
Beantwortet von theophilos Einsteiger_in (7 Punkte)
Hallo.
Vielen lieben Dank für die schnelle Antwort.

Leider funktionieren beide Codes nicht.
Beim ersten Code wird beim ausführen folgender Fehler angezeigt:

Laufzeitfehler '424':
Objekt erforderlich

Beim zweiten Code:

Laufzeitfehler '2501':
Die Aktion RunCommand wurde abgebrochen.

Ich akzeptiere gerne auch andere Vorschläge, solange das gewünschte Ziel erreicht wird.

Mir geht es tatsächlich einfach nur darum, den Text unformatiert in die Zwischenablage zu bekommen.

LG
...