Hi,
ich suche schon einige Zeit in Büchern und im Netz, natürlich auch in der Online-Hilfe, aber leider nix. Wie bekommen ich einen Textfeld-Inhalt mit Access-Bordmitteln in die Zwischenablage?
Dank für alle Anregungen.
Christian
Der Tastaturcode ist zum Kopieren. Wenn Du mit dem Cursor im Textfeld bist, wechselst Du mit zwischen Einfügemodus und Komplettmarkierung.
Gruß kw
hallo Christian,
probier´s mal mit
docmd.gotocontrol „name deines textfeldes“
sendkeys „^c“ (^ entspricht strg)
wird auch unter „sendkeys“ in der hilfe beschrieben
gruss andreas #;-]
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Christian!
Hier der entsprechende Code mit API-call für Dich!
Obwohl ich Dir glaube, daß Du in der Hilfe und im www nachgeschaut hast, trotzdem eine Anregung und Bitte an alle: Schaut doch erst mal in den gängigen Quellen nach, bevor Ihr fragt!
Zum Beispiel folgende:
MS Access HILFE
Besonders heisser Tipp: KnowHow-Datenbank von Klaus Oberdalhoff unter http://privat.schlund.de/coenen/oberdalhoff.htm (da findet Ihr diese Clipboard-Funktion auch wieder)
MS Knowledge Base (auch hier steht sie noch mal)
http://www.saund.com/links.htm
http://www.accessware.de
http://www.access-berater.de/
http://www.fullaccess.de/
http://www.rickworld.com/
http://niemann-it.de/linkcont.htm
cu
Alex
'Leicht abgewandelt, aus der Microsoft Knowledge Base
'================================================================
’ Ermöglicht das Schreiben von String-Variablen in die Zwischenablage über eine Funktionen
’ Setzen von Daten: ClipBoard_SetData(MyString as String)
Declare Function GlobalUnlock Lib „kernel32“ (ByVal hMem As Long) _
As Long
Declare Function GlobalLock Lib „kernel32“ (ByVal hMem As Long) As Long
Declare Function GlobalAlloc Lib „kernel32“ (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Declare Function CloseClipboard Lib „user32“ () As Long
Declare Function OpenClipboard Lib „user32“ (ByVal Hwnd As Long) As Long
Declare Function EmptyClipboard Lib „user32“ () As Long
Declare Function lstrcpy Lib „kernel32“ (ByVal lpString1 As Any, _
ByVal lpString2 As Any) As Long
Declare Function SetClipboardData Lib „user32“ (ByVal wFormat As Long, _
ByVal hMem As Long) As Long
Public Const GHND = &H42
Public Const CF_TEXT = 1
Public Const MAXSIZE = 4096
Function ClipBoard_SetData(MyString As String)
Dim lngGlobalMemory As Long, lpGlobalMemory As Long
Dim lngClipMemory As Long, lngResult As Long
lngGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1)
lpGlobalMemory = GlobalLock(lngGlobalMemory)
lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString)
If GlobalUnlock(lngGlobalMemory) 0 Then
MsgBox „Daten konnten nicht in die Zwischenablage kopiert werden!“, 16
GoTo OutOfHere2
End If
If OpenClipboard(0&:wink: = 0 Then
MsgBox „Die Zwischenablage konnte nicht geöffnet werden. Daher wurden keine Daten in die Zwischenablage kopiert!“, 16
Exit Function
End If
lngResult = EmptyClipboard()
lngClipMemory = SetClipboardData(CF_TEXT, lngGlobalMemory)
OutOfHere2:
If CloseClipboard() = 0 Then
MsgBox „Die Zwischenablage konnte nicht geschlossen werden!“, 64
End If
End Function
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Einfache Mehtode
Hi Christian!
Wenn Du im Formular bist, geht das ganz einfach über ein Makro.
Angenommen, das Textfeld heißt „MeinFeld“. Lege folgendes Makro an und führe es aus:
GeheZuSteuerelent -\> MeinFeld
AusführenBefehl -\> kopieren
Fertig…!
Gruß,
Claudio
probier´s mal mit
docmd.gotocontrol „name deines textfeldes“
sendkeys „^c“ (^ entspricht strg)wird auch unter „sendkeys“ in der hilfe beschrieben
gruss andreas #;-]
So einfach und so gut, vielen Dank. Ich hab’s mit SetFocus realisiert.
Christian