Access: Setting the tab order needs improvement

G

Guest

My suggestion for Microsoft is to improve form building in Access 2003 by
allowing the user to set the tab order from the keyboard numerically.
Clicking and dragging is tedious and aggravates my carpal tunnel syndrome in
my right hand. It takes forever and I'm about to just say forget it and try
a different program. Frankly, insisting on mousing runs counter to anything
in Access because it's not a program that your low-end user is capable of
using anyway. Power users are typically keyboarders because it's faster and
more efficient. It's an advantage Windows has over the Mac, the ability to
keyboard. Why not take advantage of it?

----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.

http://www.microsoft.com/office/com...e8c05fa4459d&dg=microsoft.public.access.forms
 
R

RoyVidar

AccessDenied wrote in message
My suggestion for Microsoft is to improve form building in Access
2003 by allowing the user to set the tab order from the keyboard
numerically. Clicking and dragging is tedious and aggravates my
carpal tunnel syndrome in my right hand. It takes forever and I'm
about to just say forget it and try a different program. Frankly,
insisting on mousing runs counter to anything in Access because it's
not a program that your low-end user is capable of using anyway.
Power users are typically keyboarders because it's faster and more
efficient. It's an advantage Windows has over the Mac, the ability
to keyboard. Why not take advantage of it?

----------------
This post is a suggestion for Microsoft, and Microsoft responds to
the suggestions with the most votes. To vote for this suggestion,
click the "I Agree" button in the message pane. If you do not see
the button, follow this link to open the suggestion in the Microsoft
Web-based Newsreader and then click "I Agree" in the message pane.

http://www.microsoft.com/office/com...e8c05fa4459d&dg=microsoft.public.access.forms

Perhaps not easier, but you can work with the tab order entirely with
the keyboard, for instance through manipulating the property dialog.

When a form is open in design view (Alt+D), you can move between the
different controls using tab. When you wish to change the tab order of
the selected control, hit Alt+Enter to get the Property Dialog, use
Ctrl+Tab until the correct tab is selected, use Arrow keys to select
correct property (Tab Index), type the Tab Index you wish this control
to have. Hit Alt+F4 to close the Properties Dialog, and save (Ctrl+s).

Or, you can do it programatically through for instance entering the
immediate pane (ctrl+g) or a sub, and do

forms("name of form").controls("mycontrol").tabindex = 10

This altering of value should normally switch tab index between the
selected control, and the control currently having the tab index you're
entering.

So, you can alter the tab order entirely by the keyboard, but I'll
agree
it would be nice if the Tab Order UI could become a bit more "keyboard
friendly".
 
R

RoyVidar

RoyVidar wrote in message said:
AccessDenied wrote in message


Perhaps not easier, but you can work with the tab order entirely with
the keyboard, for instance through manipulating the property dialog.

When a form is open in design view (Alt+D), you can move between the
different controls using tab. When you wish to change the tab order
of
the selected control, hit Alt+Enter to get the Property Dialog, use
Ctrl+Tab until the correct tab is selected, use Arrow keys to select
correct property (Tab Index), type the Tab Index you wish this
control
to have. Hit Alt+F4 to close the Properties Dialog, and save
(Ctrl+s).

Or, you can do it programatically through for instance entering the
immediate pane (ctrl+g) or a sub, and do

forms("name of form").controls("mycontrol").tabindex = 10

This altering of value should normally switch tab index between the
selected control, and the control currently having the tab index
you're
entering.

So, you can alter the tab order entirely by the keyboard, but I'll
agree
it would be nice if the Tab Order UI could become a bit more
"keyboard
friendly".

You can probably also build your own interface for it, if interested.
Here's a very crude start without any errorhandling, no serious
testing,
where you'd need a table tblControlNames containing the field PK -
Autonumber, tabidx - long integer, ctlname - text, then the following
two routines might perhaps work.

Public Sub SaveControlTabIDX(ByVal v_strFormName As String)
Dim ctl As Control
Dim frm As Form

DoCmd.OpenForm v_strFormName, acDesign, , , , acHidden
Set frm = Forms(v_strFormName)
CurrentProject.Connection.Execute _
"delete from tblControlNames", , adExecuteNoRecords + adCmdText
For Each ctl In frm.Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox, acListBox, _
acCheckBox, acCommandButton ' + more controltypes
CurrentProject.Connection.Execute _
"insert into tblControlNames (tabidx, ctlname) " &
_
" values (" & ctl.TabIndex & ", '" & _
ctl.Name & "')" , , adExecuteNoRecords + adCmdText
End Select
Next ctl
DoCmd.Close acForm, v_strFormName, acSaveNo
Set ctl = Nothing
Set frm = Nothing
End Sub

Then after playing with the information in the table (or through a form
you build), then set the values back to the form controls.

Public Sub SetControlTabIDX(ByVal v_strFormName As String)
Dim rs As ADODB.Recordset
Dim frm As Form

DoCmd.OpenForm v_strFormName, acDesign, , , , acHidden
Set frm = Forms(v_strFormName)
Set rs = CurrentProject.Connection.Execute("tblControlNames" _
, , adCmdTable)
Do While Not rs.EOF
frm.Controls(rs.Fields("ctlname").Value).TabIndex = _
rs.Fields("tabidx").Value
rs.MoveNext
Loop
DoCmd.Close acForm, v_strFormName, acSaveYes
Set frm = Nothing
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top