[AccessD] Selecting Entire Field

Rocky Smolin rockysmolin at bchacc.com
Fri Apr 3 09:26:16 CDT 2009


Max:

That looks like a very 'robust' solution.  I ended up using Charlotte's snip
for the click event and Application.SetOptions to set the enter behavior to
select the whole field.  But that Application.SetOptions does not carry from
one form to another.  You have to issue it in each form where you want that
behavior.  Setting it through the menus worked but only until you exited. 

Rocky


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Max Wanadoo
Sent: Friday, April 03, 2009 2:38 AM
To: Access Developers discussion and problem solving
Subject: [AccessD] Selecting Entire Field

Rocky,
Dont know if you solved this last night but if not the code below will
select the entire field whether tabbed in or clicked in, regardless of hte
global setting in Tools/Options.
Max
ps. Haven't got access to previous correspondece/postings so the title may
be out of sync.  Sorry.


' Test the ability to select the entire contents of a bound field regardless
of the setting in Tools/Options/Keyboard ' tests only a
Currencyfield,Datefield,Numberfield,Stringfield
' does not work for boolean fields
' for each field we need to call the sub for both the OnClick event AND the
GotFocus event ' Max Sherman Apr 2009 Option Compare Database Option
Explicit Private ActiveCtl As Control

Private Sub BooleanField_Click()
' do not call sSelLength for boolean
End Sub

Private Sub BooleanField_GotFocus()
' do not call sSelLength for boolean
End Sub

Private Sub CurrencyField_Click()
  Call sSelLength
End Sub

Private Sub CurrencyField_GotFocus()
  Call sSelLength
End Sub

Private Sub DateField_Click()
  Call sSelLength
End Sub

Private Sub DateField_GotFocus()
  Call sSelLength
End Sub

Private Sub NumberField_Click()
  Call sSelLength
End Sub

Private Sub NumberField_GotFocus()
  Call sSelLength
End Sub

Private Sub StringField_Click()
  Call sSelLength
End Sub

Private Sub StringField_GotFocus()
  Call sSelLength
End Sub
Private Sub sSelLength()
  On Error GoTo errhandler
  Set ActiveCtl = Application.Screen.ActiveControl
  Debug.Print Application.Screen.ActiveControl.Name
  With ActiveCtl
    .SetFocus
    .SelStart = 0
    .SelLength = Len(Nz(ActiveCtl, "")) + 1
  End With
exithere:
  Exit Sub
errhandler:
  Select Case Err.Number
  Case 2474  ' not active control
    Debug.Print Application.Screen.ActiveControl.Name
    MsgBox Application.Screen.ActiveControl.Name
  Case Else
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
  End Select
  Resume exithere
End Sub
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list