Running under the assumption that you really DO need to have all of that
stuff "at once" - consider this...
6 by 96 controls is probably more than you can have associated with a form
(and its subforms) at any given time. A client of mine kept crashed Access
in design view when they went to add "jsut one more" control. They had a
half dozen or so pages on a tabbed control and were bringing "everything".
Even after they trimmed it down, it was also, shall we say, sluggish.
Here's a way to work around it if you really must have all of that stuff.
Main form - may be bound to a record.
1) On the main form, add a tabbed control. I'll call it 'myTab'. Put your
6 tabs on it. Make the page below it zero height.
2) Create a form "sfm_PlaceHolder". No bound record source, no controls, no
navigation buttons, no record selectors. Essentially empty.
3) Drag and drop sfm_PlaceHolder onto the main form, and position it snug up
under the tab control. Size it to be the size of your desired 'page'.
4) Create your 6 subforms for the 6 tables. For our purposes, name them
sfm_Tab_0, ... sfm_Tab_5.
5) in main's code behind form, add the following
a) Private Sub myTab_Change()
Select Case myTab.Value
Case 0
Me.sfm_PlaceHolder.SourceObject = "sfm_Tab_0"
...
Case 5
Me.sfm_PaceHolder.SOurceObject = "sfm_tab_5"
End Select
' If you need to alter the row source, i.e. change condition, you could
do it here
' While I just show an array of SQL statements, you could construcrt
one on the fly
' with various parameters from the user, etc.
Me.sfm_PlaceHolder.RecordSource = SQL_statement(Me.myTab.Value)
' or similar
Me.sfm_PlaceHolder.Requery
End Sub
b) Private Sub Form_Open()
myTab.Value = 0 ' forces the display of the first subform
End Sub
c) Private Sub Form_Current()
myTab.Value = 0 ' forces the display of the first subform
End Sub