Solved

Disable all controls on a tab control except one dropdown on open

Posted on 2006-07-19
11
388 Views
Last Modified: 2008-09-03
I have a form with a tab control on it.  On open I would like to have everything on the tabctl disabled (if applicable) with only one combo box enabled.  thanks in advance
0
Comment
Question by:H-SC
  • 4
  • 3
  • 3
  • +1
11 Comments
 
LVL 65

Expert Comment

by:Jim Horn
ID: 17137989
The quick-and-dirty approach would be to mark them all as Enabled = No (Visible = No?) in Form Design, with your one combo box Visible = Yes, then save.  
That way, on open they're all disabled, and you can write code in your combo box's AfterUpdate event to make them Enabled = Yes.

Hope this helps.
-Jim
0
 
LVL 65

Accepted Solution

by:
rockiroads earned 125 total points
ID: 17138058
Way to do it in code is like this
I recommend putting it in a function so u can toggle


private sub EnableDisableControls(byval bEnable as boolean)

dim ctl as control

for each ctl in Me.Controls
    if ctl.ControlType = acTextBox or ctl.ControlType = acComboBox or ctl.ControlType = acListBox then
        if ctl.Name <> "mycombo" then
            ctl.Enabled = bEnable
        endif
    end if
next ctl

end sub


Now u call it passing in TRUE to enable, FALSE to disable

on your form_open, u can call this procedure passing in FALSE
   
0
 
LVL 1

Author Comment

by:H-SC
ID: 17138082
jim,

In most cases I do just that.  In this case, I would really like to have code that does the switch for all with the one exception.  This particular form has a ton of fields and controls on it thus... looking for some type of shortcut approach to this particular form.
0
 
LVL 1

Author Comment

by:H-SC
ID: 17138106
rockiroads,

thanks,

I will try...
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17138127
In that code I only check for textboxes, listboxes and dropdowns

If u have other editable controls, ensure u add them in,
checkbox is acCheckBox

if u want command buttons disabled,  then its acCommandButton


Ensure u set  "mycombo"  to be the control name of your combo that u want always enabled
0
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 
LVL 44

Expert Comment

by:Leigh Purvis
ID: 17138177
Well, if you're only wanting to disable controls on the tab then surely you'd have to consider it separately from Me.Controls

Something like

    Dim ctl As Control
    Dim intPages As Integer
   
    For intPages = 0 To Me.TabControl.Pages.Count - 1
        For Each ctl In Me.TabControl.Pages(intPages).Controls
            ctl.Enabled = False
        Next
    Next

Or to use Rocki's method with a small alteration

for each ctl in Me.Controls
    if ctl.ControlType = acTextBox or ctl.ControlType = acComboBox or ctl.ControlType = acListBox then
        if ctl.Name <> "mycombo" and ctl.Parent.Name = "TabControlName" then '<<---change here
            ctl.Enabled = bEnable
        endif
    end if
next ctl
0
 
LVL 1

Author Comment

by:H-SC
ID: 17138381
rockiroads,

that worked perfect !!

many thanks
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17150234
No probs
0
 
LVL 44

Expert Comment

by:Leigh Purvis
ID: 17150276
Were all the controls you have on that form on your tab anyway? :-p

(But you perhaps imagined that the tab control makes a difference - a bit like a subform perhaps?  I believe that is a common assumption).
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 17150311
Leigh u up l8, I still aint recovered, still serious sore throat but at least no fever anymore but cant find a car :(
laters mate, bedtime!
0
 
LVL 44

Expert Comment

by:Leigh Purvis
ID: 17150334
Late?  This is where my day just gets going ;-)
Hours of work ahead of me yet :-D
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It took me quite some time to sort out all the different properties of combo and list boxes available from Visual Basic at run-time. Not that the documentation is lacking: the help pages are quite thorough and well written. The problem was rather wh…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now