![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
How can I find the first blank control on a form by looking at the controls in the order of their tab order? Thanks! Tom |
#3
| |||
| |||
|
|
How can I find the first blank control on a form by looking at the controls in the order of their tab order? |
#4
| |||
| |||
|
|
On Thu, 06 Jan 2005 22:02:44 GMT, "Tom" <tstewart (AT) nospam (DOT) please> wrote: How can I find the first blank control on a form by looking at the controls in the order of their tab order? Something like this: 1) Decide which types of control you're interested in. E.g. Labels and Lines don't have a TabIndex property, and blank commandbuttons may or may not be of interest. 2) For each type you're interested in, decide what you mean by "blank" (e.g. Null, False, zero-length string?) What about subform controls? 3) Iterate through all the controls on the form. For Each ctlC in Me.Controls If ctlC.Type is one you interested in Then store its Name and TabIndex in a structure or collection End If Next Iterate through the stored control names in TabIndex order Check the type of the control, apply your rule for whether it's blank (e.g. for a textbox, IsNull(Me.Controls(strCtlName).Value) Stop at the first blank control or at the end of the form -- John Nurick [Microsoft Access MVP] Please respond in the newgroup and not by email. |
#5
| |||
| |||
|
|
Thanks, John! I was still wondering how to get the controls in tab order. Where can I find a list of the constants for each type of control? Tom "John Nurick" <j.mapSoN.nurick (AT) dial (DOT) pipex.com> wrote in message news:84ast0pnqmhvbvobp7ntlc0csqfleq6pfp (AT) 4ax (DOT) com... On Thu, 06 Jan 2005 22:02:44 GMT, "Tom" <tstewart (AT) nospam (DOT) please> wrote: How can I find the first blank control on a form by looking at the controls in the order of their tab order? Something like this: 1) Decide which types of control you're interested in. E.g. Labels and Lines don't have a TabIndex property, and blank commandbuttons may or may not be of interest. 2) For each type you're interested in, decide what you mean by "blank" (e.g. Null, False, zero-length string?) What about subform controls? 3) Iterate through all the controls on the form. For Each ctlC in Me.Controls If ctlC.Type is one you interested in Then store its Name and TabIndex in a structure or collection End If Next Iterate through the stored control names in TabIndex order Check the type of the control, apply your rule for whether it's blank (e.g. for a textbox, IsNull(Me.Controls(strCtlName).Value) Stop at the first blank control or at the end of the form -- John Nurick [Microsoft Access MVP] Please respond in the newgroup and not by email. |
#6
| |||
| |||
|
|
Tom, For the constants, look up ControlType in the Object Browser. One way of getting them in tab order is along these lines: Dim colC As New VBA.Collection Dim j as Long Dim lngHighestTabIndex As Long ... lngHighestTabIndex = 0 'store relevant names and tab indexes in collection For Each ctlC in Me.Controls With ctlC Select Case .Type Case acBlah, acSomething, acSomethingElse... colC.Add ctlC.Name, Format(.TabIndex, "000") If .TabIndex > lngHighestTabIndex Then lngHighestTabIndex = .TabIndex End If End Select Next 'ctlC 'Iterate through the stored control names in TabIndex order On Error Resume Next For j = 1 To lngHighestTabIndex strCtlName = colC.Item(Format(j, "000")) If Err.Number = 0 Then If [control is blank] Then Exit For End If End If Err.Clear Next j On Error GoTo 0 On Fri, 07 Jan 2005 16:51:11 GMT, "Tom" <tstewart (AT) nospam (DOT) please> wrote: Thanks, John! I was still wondering how to get the controls in tab order. Where can I find a list of the constants for each type of control? Tom "John Nurick" <j.mapSoN.nurick (AT) dial (DOT) pipex.com> wrote in message news:84ast0pnqmhvbvobp7ntlc0csqfleq6pfp (AT) 4ax (DOT) com... On Thu, 06 Jan 2005 22:02:44 GMT, "Tom" <tstewart (AT) nospam (DOT) please> wrote: How can I find the first blank control on a form by looking at the controls in the order of their tab order? Something like this: 1) Decide which types of control you're interested in. E.g. Labels and Lines don't have a TabIndex property, and blank commandbuttons may or may not be of interest. 2) For each type you're interested in, decide what you mean by "blank" (e.g. Null, False, zero-length string?) What about subform controls? 3) Iterate through all the controls on the form. For Each ctlC in Me.Controls If ctlC.Type is one you interested in Then store its Name and TabIndex in a structure or collection End If Next Iterate through the stored control names in TabIndex order Check the type of the control, apply your rule for whether it's blank (e.g. for a textbox, IsNull(Me.Controls(strCtlName).Value) Stop at the first blank control or at the end of the form -- John Nurick [Microsoft Access MVP] Please respond in the newgroup and not by email. -- John Nurick [Microsoft Access MVP] Please respond in the newgroup and not by email. |
![]() |
| Thread Tools | |
| Display Modes | |
| |