Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

ACC2000: Tab Control Inserted on Another Tab Control Remains on Top


View products that this article applies to.

Symptoms

Novice: Requires knowledge of the user interface on single-user computers.

When you place a tab control on any page of another tab control, and then view the form in Form view, the embedded tab control is visible from any page of the main tab control.

↑ Back to the top


Cause

Tab controls can not be nested.

↑ Back to the top


Resolution

You need to use Visual Basic for Applications code to set the Visible property of the tab control that you want to appear to be "nested" within another tab control.

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
  1. Follow steps 1 through 10 in the "Steps to Reproduce Behavior" section later in this article.
  2. Open the form in Design view.
  3. In the Object list (the drop-down list on the far left of the Formatting toolbar), click TabControlMain.
  4. Right-click TabControlMain, and then click Properties.
  5. Click the Event tab, and then click the OnChange property box.
  6. Click the Build button (...) to the right of the OnChange property box.
  7. In the Choose Builder dialog box, click Code Builder, and then click OK. This opens the Visual Basic Editor.
  8. Set the OnChange property to the following event procedure:
    Private Sub TabControlMain_Change()
       If TabControlMain.Value = 1 Then
          TabControlEmbedded.Visible = True
       Else
          TabControlEmbedded.Visible = False
       End If
    End Sub
    					
  9. To return to the form, on the View menu, click Microsoft Access.
  10. On the View menu, click Form View.
  11. Click Page 1 of TabControlMain, and then click Page 2. Note that TabControlEmbedded is visible only on Page 2.
NOTE: The Value property of a tab control contains the index number of the current Page object. There is one Page object for each tab in a tab control. The first Page object always has an index number of 0, the second has an index number of 1, and so on.

↑ Back to the top


More information

Form controls cannot be placed inside other form controls. The only exception to this is the Subform/Subreport control, which can contain a form that has additional controls. Even when you place a tab control on top of another tab control, they are both associated with the form, not with each other.

You can demonstrate this by using the form you design in the "Steps to Reproduce Behavior" section later in this article. Once the form is showing in form view, open the Immediate Window by typing CTRL+G and type each of the following statements followed by the ENTER key.
?Forms!Form1!TabControlMain.Parent.Name
?Forms!Form1!TabControlEmbedded.Parent.Name
You will see that the Parent for each of the tab controls is the form itself, not the other tab control.

Steps to Reproduce Behavior


  1. Start Microsoft Access and open any database.
  2. In the Database window, click Forms under Objects, and then click New.
  3. In the New Form dialog box, click Design view, and then click OK to create a form not based on any table or query.
  4. On the View menu, click Toolbox if the toolbox is not already visible; click the Tab Control button on the Toolbox toolbar, and then create a tab control in the detail section of the form.
  5. On the View menu, click Properties; set the control's Name property to TabControlMain.
  6. Click Page 2 of TabControlMain.
  7. Create another tab control on Page 2 of TabControlMain.
  8. On the View menu, click Properties; set the Name property of the tab control to TabControlEmbedded.
  9. On the View menu, click Form View.
  10. Click Page 1 of TabControlMain, and then click Page 2. Note that TabControlEmbedded is visible on both pages.

↑ Back to the top


References

For more information about the tab control, click Microsoft Access Help on the Help menu, type tab control in the Office Assistant or the Answer Wizard, and then click Search to view the topics returned.

For more information about the Parent property, click Microsoft Access Help on the Help menu, type parent property in the Office Assistant or the Answer Wizard, and then click Search to view the topics returned.

↑ Back to the top


Keywords: KB208808, kbprb

↑ Back to the top

Article Info
Article ID : 208808
Revision : 3
Created on : 6/23/2005
Published on : 6/23/2005
Exists online : False
Views : 253