Nee little help on tabs

  • Thread starter Thread starter Alain
  • Start date Start date
A

Alain

Hi to all,

I do not know if anyone can help me on this one.
I have a form that contains a tab control with 15 tabs on it, tab 1 contains
approx 120 fields, half of them are calulated fields that are being updated
on the current event of the form thru a private sub.
On the tab control, I have 6 page with 1 subfrm on it, 2 pages with 4, 1
page with either 6,7 or 9 subfrm, very few subs are failry complex but most
of them contains less than 25 controls on them.
Loading the main form that have the tab control takes less than 1 sec. The
pages are program to be loaded on a per demand only,sample code I currently
use:

Case Me.pagProfile.PageIndex

Me.cmdHome.Visible = True
Me.Application.Echo False
Call Disconnect(intIndex)

If Len(subfrmBranchSignage.SourceObject) = 0 Then
subfrmBranchSignage.SourceObject = "subfrmBranchSignage"
subfrmBranchSignage.LinkChildFields = "IdBranch"
subfrmBranchOther.SourceObject = "subfrmBranchOther"
subfrmBranchOther.LinkChildFields = "IdBranch"
subfrmBranchAccess.SourceObject = "subfrmBranchAccess"
subfrmBranchAccess.LinkChildFields = "IdBranch"
subfrmBranchBarrier.SourceObject = "subfrmBranchBarrier"
subfrmBranchBarrier.LinkChildFields = "IdBranch"
subfrmBranchBasics.SourceObject = "subfrmBranchBasics"
subfrmBranchBasics.LinkChildFields = "IdBranch"
subfrmBranchElectrical.SourceObject = "subfrmBranchElectrical"
subfrmBranchElectrical.LinkChildFields = "IdBranch"
subfrmBranchConcept.SourceObject = "subfrmBranchConcept"
subfrmBranchConcept.LinkChildFields = "IdBranch"
Me.Application.Echo True
'reset variable for the next disconnect() call
intIndex = Me.pagProfile.PageIndex
End If

Private Sub DisconnectOptions()
'disconnect all objects in option page
If Len(frmRenewalOptions.SourceObject) > 0 Then
frmRenewalOptions.SourceObject = ""
' frmRenewalOptions.LinkChildFields = "IdBranch"
frmExpansionRights.SourceObject = ""
' frmExpansionRights.LinkChildFields = "IdBranch"
frmCancellationRights.SourceObject = ""
' frmCancellationRights.LinkChildFields = "IdBranch"
frmRefusalRights.SourceObject = ""
' frmRefusalRights.LinkChildFields = "IdBranch"
End If
End Sub
the commented lines generate problems.

The main problem is when I load a new tab, the controls in them are turning
white while waiting to painted, (just imagine seeing your screen changing
line per line of pixel), this loading can take up to 3 secs.
Is there anything that can be done to improve this process, the white boxes
thing ??
My back end is on a network and just had it tested today regaring the so
call updating delay, I am currently waiting for the detailled report but from
the first look at it, it will not be the problem
My back end contains approx 150 tables broken down to respect as much as
possible normalization.
I currently use intel 3.4 Ghtz CPU, 2gig or RAM and XP Pro with Access 2007.

Many thanks
 
Do you really need all the tabs loaded at once?

If not, you could shrink to tab control so it has no real height below the
tabs, and place just one subform control directly on the form below that
(i.e. it's NOT on a page of the tab control.) Then respond to the tab
control's Change event by loading the appropriate tab sourceobject into the
subform control.

The example below assumes:
- a tab control named tabMain
- subform control named fsubGeneric
Then put the form name into the Tag property of each tab page, and set up
the tab control's Change event procedure like this:

Private Sub tabMain_Change()
With Me.tabMain.Pages(Me.tabMain.Value)
If .Tag <> vbNullString Then
Me.fsubGeneric.SourceObject = .Tag
Else
MsgBox "Page " & .Name & " has no Tag."
End If
End With
End Sub

If you still have significant delay you can suppress the visual mess with
DoCmd.Echo False
making sure it turn it on again in the error exit section (so it still comes
back on even after an error.)
 
Do you have a persistent connection to your back-end?
Do your sub-form Recodsources limit the returned records to only those that
match the selected record in the main form using a WHERE clause in the SQL
statement?
--
Hope this helps,

Daniel Pineault
http://www.cardaconsultants.com/
For Access Tips and Examples: http://www.devhut.net
Please rate this post using the vote buttons if it was helpful.
 
Hi Daniel,

my persistent connection is directly related to my tab1, it is the only one
that I never disconnect. The client request need to have all recordset loaded
when a specific tab is selected since the client will need to do a search
thru all his recordset from that page, although the search cbo is on the form
header, I might be able to to do something about this, will need to test if
feasable
Thanks
 
Hi Allen,

if I understand you correctly, I should have a tab control of small size
with a subform underneath that tab, the information loaded thru that subform
will be based on the tab tag therefore ending up with 1 main form and
multiple subforms being loaded on demand ?
Very interesting, I will need to find some time to teest this one out, sadly
running out of time so I am modifying to an older desing.

Thanks
 
Back
Top