Assuming there is really a reason you what to do this, just check for:
(KeyCode = vbKeyC) And ((Shift and acCtrlMask) > 0)
I assume you need this for getting the data into a variable in your code not into the copy/paste buffer for the user to use.
Of course another reason might be that you want to automatically copy all of the text into the copy/paste buffer. This would be a nice feature since when a field is clicked (rather than tabbed into) it doesn't automatically select all of the text. If this is what you want to do, then the code for when a Ctrl+C is pressed is:
Me.field.SelStart = 0
Me.field.SelLength = Len(Me.field)
BTW, you can't use the GotFocus event to make sure all of the text gets selected when a user clicks into a field. The click somehow overrides the GotFocus as far as selecting text goes. Though you might be able to trap the MouseDown or MouseUp events to do this. I've just given up trying to make this work the way I want.
You might also be wanting to use this to prevent the user from copying something into the copy/paste buffer. If so, then the code for when a Ctrl+C is pressed is:
KeyCode = 0
Of course as Greg says, if this is a simple copy of the text the user has selected, why reinvent the wheel? And keep in mind that if you trap the key because you're trying to automatically copy all of the text, the user will never be able to copy just the part of the text that they select. Of course a way around this would be to check the SelLength before you reset the SelStart and SelLength. If SelLength is GT zero, don't reset anything.
Just curious, what are you really trying to do when you trap Ctrl+C?
Randall J Weers
Membership Vice President
Pacific NorthWest Access Developers Group
http://www.pnwadg.org