Tab Control - odd behaviour related to 'Theme'


My first post here.

I could give you a load of background first but since I can reproduce this problem easily, let me give you the simple version.

I am using Access 2007 on a Windows XP PC but I happen to know that this also happens in Access 2010 and is related to the Windows 'Theme' chosen. Please note that this has nothing to do with Tabbed Forms. To reproduce this problem, I do this:

1. Open a new blank 2007 database.
2. Create a new blank form and in design view, add a tab control.
3. Add a few more pages to the tab control.
4. Go into properties and change the 'style' of the tab control to 'buttons'

Now, if the PC is set to Theme 'Windows XP', when you click along the various buttons, whether in design view or form view, the labels on one or more of the buttons you've just clicked go blank - in my case they just go white. But if you then hover the cursor over the blank ones, the labels reappear.

If you change the Theme to 'Windows Classic', this problem goes away but my users don't want their PCs set to the Classic Theme just to suit Access.

Similarly, the problem goes away if you change the Tab Control style to 'Tabs' (using any Theme you want), but the tab control behaves in a way that my users find frustrating. With multiple rows of tabs, the rows move position depending on what tab you click. My users want the tabs and tab rows to stay put - like they do when you select 'button' style.

Has anyone else come across this? Is there a solution, rather than the imperfect workarounds I've discovered?

Thanks in advance.

Post your answer or comment

comments powered by Disqus
My tab control works fine when I'm viewing existing records, but when I pull up my form to add new records, the subform on the tab control shows blank.

I've been fiddling with the properties for awhile now and I can't sort it. Is it possible to get it set so that I can add new records on the main form and input new data on the tab controlled subform that relates to that new record at the same time?

When i pull it up to enter a new record, I use a "new record" button which sets the form to Data Entry=True but it only cycles the current record. This isn't something where user will input bulk records.

I have been trying to figure out how the tab control works on a form...
So far, not at all...

How do I display another form as a subform on one of the pages on the tab control? I can't seem to find anything in the toolbox to add to the page...

I wanted to use the tab control as a way to "browse" the forms in the database, so I'd have a static look/size of the application window, where only the sub form area on the form - or the tab control - would change depending on what form was requested by the user.

How do I do this (without constantly adding movesize to the load event of each form)?

I need help with this form I am creating. I have an application form on one tab control. I have created a second tab control, called Children. I want to link that tab control to the table called "children". The other tab control, application is linked to the table called applications. Can I link my second tab control to a different table? Thanks.

I have a form with 3 tabs...each tab has the same subform embedded in it.

There are 3 sequential records in the database, and my desire is to have each record display on its' proper tab.

How can I set filter criteria for each subform to append the record sequence identifier to the link master/child fields to ensure that only the appropriate record displays on each tab?

Basically, I trying to use tab controls with embedded subforms to display the many side of a one to many relationship. The parent form contains the data for the parentrecord, and I want the subform, with a tab for each related record, to show the child side of the data relationship. One child record per tab, utilizing the same identical sub-form for each.

Hope someone can help with this as I've been stuck on it for several hours.

My form has a tab control which displays fine in design view but in form view acts very weird. The top of the tab control seems to be locked at some value so that the tabs and their captions separate from the tab content and move up the form. I am unable to change the TOP property of the tab control. When I try to, the HEIGHT property changes to compensate. So if I try to reposition the tab control by changing TOP from 2 to 4 inches, the HEIGHT increases by 2 inches but the TOP remains locked where it was. I tried cutting the tab control to a new form and it acts ok there. As soon as I paste it back to the original form, ther weird behaviour recommences.

Any ideas on how to fix this?

I used an existing student template in access and started renaming student to employee - YES the autocorrect option was on in Access options and it didn't do much.

Long story short the orignial Student Details (Now named Employee Details) form stoped working (WONT GO TO THE NEXT RECORD)

So I started creating a new form based on this creating a tab for each table ... (AGAIN) The form still FAILS TO GO TO THE NEXT RECORD

Attached is a print screen of the database I am creating to show where the problem is in red demonstrating NEXT RECORD CONTROL BAR ON BOTTOM OF SCREEN..

Its only happening in this TAB CONTROL FORM.... How can I correct this?

And can I have a one record EMPLOYEES TABLE to a many Record in the same tabular control layout or is this where the problem lies?

Can I add internal NEXT RECORD BUTTONS to the tabs created from other tables -?

EG The main BOTTOM RECORD TOOLBAR Controls the Main TABLE "Employees" but the linked tab/tables to the employee - "Performance" & "Training" which will have many Records to that one employee record - can these have an internal NEXT RECORD BUTTON IN THAT PAGE OF THE TAB FORM that will move to other records recorded in those tables relevant to the employee "viewed" form the main (1st Record).

Attached picture shows the aim above circled in green


I am struggling with an Access 2007 database I inherited. The problem is regarding tab controls. I would like to refer to a value in a list box within a tab and use that value to populate a text box in a form.

I have a tab control called "TabCtl4" and the data I want to retrieve is on "page5", from a list called "lstContracts". I want to populate the ID [Russell Contract ID] into a text box on a form [frmIndexAdd]. This is what I have unsuccessfully come up with:

=[frmMDSMain].[Controls]![TabCtl4].[page5].[lstContacts].[Russell Contract ID]

Is there a way to pass a value from a list box on a tab to a text box on a form?

Thank you for reading my post! Any help is greatly appreciated!

I have a tab control on my form. I have attached code to my "filetype" field which opens up the respective tab based on the "filetype". This works fine for data entry, but when I use the form for inquiry (based on a keyword in another field) and it returns multiple records, the appropriate tab based on the first record (using the Form_OnOpen properties)is fine, but as I move from record to record it does not change the tab control dependent on the "filetype". I do have the On_Change property set for the "filetype", so I thought that it would adjust as I move through the records, but not.

Should I be putting this code on a different property ?
Any help is appreciated. Thanks.

Hi -

I have a form that is multi-page. On the third page of that form, I tried to set up a tab control that allows me to natvigate among three subforms. The problem is that the moment I click a tab (which is on the third page of the multi-page form), the form automatically jumps back to the first page.

Is it possible I can fix it so that when I use the tab control on the third page on a multi-page form, I will not get bounced back to the first page? Although this sounds simple, I cannot figure it out.



Based on the value in one tab control, I’d like to set the click property of another tab to not execute at all if the prior tab’s criteria is not met. In my case I said if the computer date isn’t greater than a date on tab1 then any clicking on tab2 will not work or show tab2 at all because the computer date isn’t greater than the value on tab1. is my goal and I have no clue how to even begin...

I started with the Microsoft Access 2007 Template for Faculty. It comes with Tab Controls as I have heard they are called. I have changed some fields, added some fields so it is customized for my work.

The person who wants the program asked me for this, so I guess I would need help on how to do this...

He is the HR (Human Resource) man, and he wants to be able to store reviews in his Program. I can only think of 1 way of making it look nice and working, and I don't even know if it WOULD work. But I have a Tab Control Page that is set for "Review". In that Tab Control, I would want to place ANOTHER Tab Control, where it would pull up the employee's name, employee number, last review score, etc. etc. The problem I run into there is that for the same employee, he would want multiple Reviews. Now, I could make hundreds of fields and link them all, but is there an easier way?

I guess that is the background, so my questions are as followed...

1) Can you and how do you do a Tab Control (Pages) Inside another Tab Control?

2) How would you create a field that you could scroll through and have different reviews..(Such as, it would be in descending order of last review, so lets say he has done 10 reviews, Review 10 would show first. Clicking on the arrow would bring him to review 9, then 8, then 7, etc. etc)

Any help on this subject would be greatly....GREATLY appreciated!!!

Thank you,


Hi all,

I have a form that has a tab control. The tab control have 10 pages to it, each containing exactly the same controls that are bound to the same fields.

To put it in an example, I have 10 pages named page1, page2, page3, etc. Each page have exactly the same controls, which is startDate, dueDate, status, staffID, subTotal - all of which belong to the same table called "JobOrder"

I want to be able to put 10 different records into the same table all at once. But the problem is whenever I input data into page0, the same data shows up in page1, page2, etc. It is not allowing me to put different data into different pages.

Eg: I want startDate in page0 to be 19/06/10 and startDate in page1 as 01/07/10. But as soon as I put 19/06/10 into page0, the startDate in all other pages are also 19/06/10. And if I change the startDate in page1 to 01/07/10, then ALL other pages including page0 becomes 01/07/10.

Is this because all of them are on the same page?

I just need the form to be able to save multiple records at once, which is why I thought tab control would be best, but I am open to any other way that can achieve the same result.

Please help. I have been stuck on this for over 3 days...

Thanks in advance!


I have a form which has a tab control in it. By default the tab control has a white to sand gradient color background, from the tabs to the tab control background. I can't seem to figure out how to change the color. I have tried the properties, along with the shape fill. When I select shape fill and choose a gradient color, it only changes the tabs, not the entire tab control element.

Any ideas on how to change the entire tab control element to any gradient I desire?

I am trying to have 5 tabs linked together so that when I select a record from the first tab it will update the other 4 tabs with the information relating to that record.

I know I can do this using a Main and sub forms by linking Master to child but that isn't what I am trying to accomplish.

Thanks for any advice.

Hello everyone, I am having trouble with a tab control. I am trying to reference a text field on a subform of a tab control using a query.

Main Form: frmSwitchBoard
Tab Control: TabCtl0
Sheet Name: SearchClaims
SubForm: frmClaimSearch
Text Field: Text54

I am trying to reference that field in a query, but I am trying a hard time getting it to find the field.

This is what I have so far:


I tried going through other post and looked at the following link,, but wasn't able to figure it out.

Any help would be greatly appreciated.


Because I needed to define more than 255 fields for my form, I created 3 tables and used a query to bring them all together. This query is the source of my form, which has a tab control. When I tried to bring up the field list to design my form, it balked saying, "Too many fields defined." My goal is to have all of these fields in one form so that the user has an easier time of entering data. Can I do this, or will I have to resort to creating different forms? I should mention that for one of my forms, I will still have more than 255 fields.

How do you change the color of a tab control on a form to say yellow or blue?

thanks in advance for any help!

I have a form with 4 tabs that contain 4 subforms.

I would like each subform to start in the same spot on the tab.

Is there any way to force this or lock the starting position of the subform on the tab control?

Everytime I try to get the subforms aligned, one of the other subforms moves up or down.

Any help will be appreciated.

Thanks in advance,

I have a tab control box with 3 tabs.
Names: Network, Services, Resources.

When you click the Services tab, it should auto hide some fields on the form.
The thing is, you have to click a 2nd time in the tab control box for it to work.

Is there a way to have it automatically hide the fields when you select the services tab?

Is there a system wide function that is always monitoring your clicks to see what is happening??

Any code examples or hints would be great.

Thanks, Greg

I was wondering if anyone can help me with a problem I'm having.

I have a main form (Staff Details) with a subform recording Holidays Booked on a tab control. The total days booked is calculated on the subform. A field for Annual Holiday Entitlement is also on the tab control.

I am able to calculate Days Left to Book with no problem (also on the tab), but when the subform is empty it comes up with #Error in the control.

It doesn't affect the operation at all, but it does look unsightly. Can anyone help?


SLR Question to Ukraine82 re: tab control and combo box:

I read your post of 26 Aug 04 and it sounds like I have a similar problem. I thought I would ask for your help directly because I do not understand the solution you found. First, the problem:

I have a database containing a large amount of information about power plants (I am a consultant to DOE). I want to recall various categories of information about each plant in a form. My plan is to use a combo box to provide a picklist of plants. There are five categories of information about each plant so I have a tab control with five pages. I have written a query to recall specific information about each: one query for each information category. How do I get the output of the query to appear on the tab control page that corresponds to the plant selected in the combo box?

I saw your solution and must confess that I do not understand the code. I use three basic references in my work: (1) "Using Access 97" even though I am working in Access 2000, (2) "Access 2000 Programming for Dummies," and (3) "Microsoft Access VBA Programming for the Absolute Beginner." You probably can guess from the titles what my skill level is. I am a neophyte and have not gotten into writing code very deeply or gained much experience. Could you provide a few sentences about the implementation of your code? I shall be forever grateful and name my first child after you. Thanks.

This seems like it would be easy enough, but I can't seem to find an answer. I'd like to put a tab control on one page of a main tab control. I've tried to select the page and create a new tab control and cut and paste existing tab control, but in both cases the tab control pastes into the detail section of the form (where my main tab control is) and thus appears on all pages. Anyone know what I need to do? Thanks for any help.

Is it possible to make it so the last tab on a tab control will send you to the next tab control?

I have what seems like it should be a very straightforward problem using a tab control. I want it to display as a multi row form. I created a tab control and added a dozen or so pages. After adding all the captions, the control was about 20" wide. I set the multi row property to yes and tried to resize my control, but couldn't. I've tried to drag the width, but it snaps back to 20" wide. I tried setting the width in the property box and it also resets back to 20". In short nothing I have tried works. Advice on another Access forum has been sorely lacking. Can you help?

Thanks in advance


Not finding an answer? Try a Google search.