[AccessD] Form Controls

Tony Septav iggy at nanaimo.ark.com
Fri Oct 23 11:08:32 CDT 2009


Hey Charlotte
Thanks
I gathered as much, did some testing by running the loop on the 
inherited forms I have and  the control order that came up (independent 
of the view) was definitely not the tab order that was set for that form.

Charlotte Foust wrote:

>If you're talking about in design view, the controls follow the order in
>which they were added, not the tab index, which can be changed.
>
>Charlotte Foust 
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tony Septav
>Sent: Friday, October 23, 2009 8:24 AM
>To: Access Developers discussion and problem solving
>Subject: Re: [AccessD] Form Controls
>
>Hey Jack and Pat
>I thought the controls would follow the tab order when looping through,
>but not on the form I am working with.  The code is not exactly what I
>was looking for but it gives me a good starting point to do some
>modifying.
>
>Thanks kindly for the help.
>
>
>Jack and Pat wrote:
>
>  
>
>>Tony,
>>
>>I found this from Allen Browne:
>>
>>2/16/2006 4:10:25 PM    Re: accessing controls by tab index
>>
>>You could loop through the form's Controls collection, identify those 
>>that
>> 
>>have a TaxIndex (Labels don't, for instance), and load an array based 
>>on the
>>
>> 
>>TabIndex of each one:  
>> 
>>Function LoopControls(frm As Form)
>> 
>>Dim ctl As Control
>> 
>>Dim strControl() As String
>> 
>>Dim i As Integer
>> 
>>Dim iMax As Integer
>> 
>>ReDim strControl(0 To frm.Controls.Count - 1)
>> 
>>For Each ctl In frm.Controls
>> 
>>If HasProperty(ctl, "TabIndex") Then
>> 
>>i = ctl.TabIndex
>> 
>>strControl(i) = ctl.Name
>> 
>>If i > iMax Then
>> 
>>iMax = i
>> 
>>End If
>> 
>>End If
>> 
>>Next
>> 
>>For i = 0 To iMax
>> 
>>Debug.Print i, strControl(i)
>> 
>>Next
>> 
>>End Function
>> 
>>Public Function HasProperty(obj As Object, strPropName As String) As 
>>Boolean
>>
>> 
>>'Purpose:   Return true if the object has the property.  
>> 
>>Dim varDummy As Variant
>> 
>>On Error Resume Next
>> 
>>varDummy = obj.Properties(strPropName)
>> 
>>HasProperty = (Err.Number = 0)
>> 
>>End Function
>> 
>>Looping seems to be in tab order anyway.  
>> 
>>You might want to examine the TabStop property as well.  
>> 
>>--
>> 
>>Allen Browne - Microsoft MVP.  Perth, Western Australia.  
>> 
>>Tips for Access users - http://allenbrowne.com/tips.html
>> 
>>
>>-----Original Message-----
>>From: accessd-bounces at databaseadvisors.com
>>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tony Septav
>>Sent: Friday, October 23, 2009 7:50 AM
>>To: Access Developers discussion and problem solving
>>Subject: [AccessD] Form Controls
>>
>>Hey All
>>Is there a simply way to loop through the controls on a form based on 
>>their tab order?
>>
>>Thanks
>>Tony
>> 
>>
>>    
>>
>
>  
>




More information about the AccessD mailing list