I might be wrong about my approach, but I wrestled with this about 3 years ago,
and below is what I came up with.
I use the DoCmd.RunCommand acCmdCopy command, but only AFTER I've
placed all the text I want to show in a hidden text box. I have to toggle it visible,
load it with the address text, run the acCmdCopy command and then hide it again.
I also, in the code below, load the text into a label that is briefly made visible. This
is a que to the user that the copy is in progress, or actually, already finished.
Private Sub cmdMailLabel_Click()
On Error GoTo Err_Handler
Dim strOut As String
strOut = Me!txtSiteName & vbCrLf & _
Me!txtMailingAddress & vbCrLf & _
(Me!txtMailingAddress2 + vbCrLf) & _
Me!txtMailingCity & ", " & Me!txtMailingState & " " & Me!txtMailingZip & vbCrLf
DoCmd.Echo False
Me!txtCopyOfAddress.Visible = True
Me!txtCopyOfAddress.SetFocus
Me!txtCopyOfAddress = strOut
DoCmd.RunCommand acCmdCopy
Me!cmdMailLabel.SetFocus
Me!txtCopyOfAddress.Visible = False
DoCmd.Echo True
Me!lblMailLabel.Caption = "Address copied to clipboard." & vbCrLf & vbCrLf & strOut
Me.TimerInterval = 1500
Me!lblMailLabel.Visible = True
Exit_Here:
Exit Sub
Err_Handler:
Resume Exit_Here
End Sub