You should lock controls (that have the .locked property) rather than setting .enabled = false.
Why? Grey text in a disabled field is less readable. Also, blank fields give no indication that they are disabled, since there is no text to make gray. Disabling a control also disables the mouseover and tooltip properties, which may be useful to have at all times. If you wish to permit the user to select and copy text (but not write) from a field, disabling it prevents this usage.
Preferred method is to lock controls which have the .locked properties and change the background color to a light gray or light pastel color. Leave the foreground color black (this is a visual indication that the field is locked and not editable, but is still quite readable). This prevents user frustration from trying to tab to or click on empty fields and finding they are disabled.
Try using this routine:
Public Sub LockControl(cc As Control, LockedFlag As Boolean) 'locks given control (changes .locked, .tabstop, .backcolor) Const kLockedBackcolor = &HC0C0C0 Const kUnlockedBackcolor = &HFFFFFF On Error GoTo ErrTrap If LockedFlag Then cc.Locked = True cc.TabStop = False cc.BackColor = kLockedBackcolor Else cc.Locked = False cc.TabStop = True cc.BackColor = kUnlockedBackcolor End If Exit Sub Resume 'debug onlyErrTrap: If Err = 380 Then Resume Next 'Invalid property value, some controls don't have property MsgBox Err & " " & Error & " in lockcontrol "End Sub