I have a subform displaying a column of equipment code values and I want the ability for the user to click on the label header to start loading in those values to the clipboard as a column to paste into Excel, Word, etc. I already gained some coding to put something in the clipboard as text - but not an entire column listing of data. Here is the coding I have thus far... Do I have to put in a carriage return to facilitate the equip code listing. An example of equip codes (string - sEq) would be:
02340
14031
23463
53801
g41
x40
Private Sub Text61_Click()
On Error GoTo Err_Something
Dim sSQL As String
Dim rs As DAO.Recordset
Dim sEq As String
ClipBoard_SetData ("")
sSQL = "SELECT * FROM [PROJ_EQ] WHERE [Room_Number] = '" & [Room_Number] & "' ORDER BY [Equip]"
Set rs = CurrentDb.OpenRecordset(sS
QL)
Do Until rs.EOF
sEq = Nz(rs.Fields("Equip"), "")
If sEq <> "" Then ClipBoard_SetEquip (sEq)
rs.MoveNext
Loop
Set rs = Nothing
SysCmd acSysCmdSetStatus, "done."
Exit_Something:
DoCmd.Hourglass (False)
Exit Sub
Err_Something:
Call Error_Action(Err, Err.description, "frmItemListbyRoom @ Text61_Click", Erl())
Resume Exit_Something
End Sub
Option Compare Database
Option Explicit
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_SetEquip(MyStrin
g As String)
Dim hGlobalMemory As Long, lpGlobalMemory As Long
Dim hClipMemory As Long, X As Long
' Allocate movable global memory.
'-------------------------
----------
--------
hGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1)
' Lock the block to get a far pointer
' to this memory.
lpGlobalMemory = GlobalLock(hGlobalMemory)
' Copy the string to this global memory.
lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString)
' Unlock the memory.
If GlobalUnlock(hGlobalMemory
) <> 0 Then
MsgBox "Could not unlock memory location. Copy aborted."
GoTo OutOfHere2
End If
' Open the Clipboard to copy data to.
If OpenClipboard(0&) = 0 Then
MsgBox "Could not open the Clipboard. Copy aborted."
Exit Function
End If
' Clear the Clipboard.
'X = EmptyClipboard()
' Copy the data to the Clipboard.
hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory)
OutOfHere2:
If CloseClipboard() = 0 Then
MsgBox "Could not close Clipboard."
End If
End Function
Start Free Trial