Felder aus AGVIP SQL in der Zwischenablage anderen Anwendungen bereit stellen

~ 0 min
25.11.2010 11:59
Problem:

Es kann nützlich sein Daten aus AGVIP SQL in der Zwischenablage bereit zu stellen, um sie in anderen Anwendungen über Bearbeiten -> Einfügen (STRG+C) einzufügen.
VB-Script erlaubt jedoch keinen direkten Zugriff auf die Zwischenablage (Clipboard)

Lösung:

Mit dem Umweg über ein Internet-Explorer Objekt ist es möglich den Inhalt der Zwischenablage zu manipulieren.
Es ist somit möglich beliebige Felder aus AGVIP SQL an die Zwischenablage zu übermitteln.
Dies kann zum Beispiel mittels eines Makros in einem Hilfsmittel erfolgen.

Das nachfolgende Makrobeispiel überträgt den Vornamen, dann ein Leerzeichen und den Nachnamen, dann eine Zeilenschaltung und dann den Kurznamen der aktuellen Adresse in die Zwischenablage zu weiteren Verwendung.
Die Felder und Zeilenschaltungen können natürlich nach belieben angepasst werden.

Option Explicit
'Beispielscript um Felder im Clipboard für (Kopieren / Einfügen) bereit zu stellen.
'Version 1.00 vom 21.05.2008 / US
Dim copytext, strLinks
Dim objIE
'Vorname in die Variable und Leerzeichen anhängen
copytext = ActiveAddress.Fields("NameFirst").value & " "
'Nachname an die Variable und Zeilenumbruch anhängen
copytext = copytext & ActiveAddress.Fields("NameLast").value & Chr(13) 
'Kurzname in die 2. Zeile
copytext = copytext & ActiveAddress.Fields("Shortname").value 
'Nach diesem Muster können beliebige Informationen zusammen gestellt werden.
'Da per VBS kein direkter Zugriff auf das Clipboard möglich ist, nehmen wir 'einen Umweg über das Internet Explorer Objekt.  
copytext=CStr(copytext)  
Set objIE = CreateObject("InternetExplorer.Application")    
objIE.Navigate("about:blank")    
objIE.document.parentwindow.clipboardData.SetData "Text", copytext    
objIE.Quit
Hinweis:

Bei Windows Vista / Windows 7 oder dem Internet Explorer Version 7 oder höher kann es zu einer Sicherheitsabfrage kommen: "Wollen Sie den Zugriff zulassen"

Ab der Version AG-VIP SQL 1.21.002 oder höher steht Ihnen die wesentlich einfachere Variante über unser internes Makromodell zur Verfügung. Das obige Beispiel sieht unter Verwendung von Macro.Clipboard wie folgt aus:

Option Explicit
Dim copytext
'Vorname in die Variable und Leerzeichen anhängen
copytext = ActiveAddress.Fields("NameFirst").value & " "
'Nachname an die Variable und Zeilenumbruch anhängen
copytext = copytext & ActiveAddress.Fields("NameLast").value & Chr(13) 
'Kurzname in die 2. Zeile
copytext = copytext & ActiveAddress.Fields("Shortname").value 
'Nach diesem Muster können beliebige Informationen zusammen gestellt werden. 
Macro.Clipboard = CStr(copytext)
Durchschnittliche Bewertung 0 (0 Abstimmungen)

Kommentieren nicht möglich