slow refresh of form when using large tab control

K

kevinrea

hi guys,

i have a form with a large tab control on it., it has about 60 tabs.
well, when i change which tabs show with code, it takes several second
for it to refresh on the screen.
i am not running a slow pc, it is a 2.4ghz.
Can any of you think of a way to speed this up ?
here is one piece of code I am using to do this.
thanks,
Please email me at:
(e-mail address removed)


Code
-------------------

Private Sub NumberOfBedrooms_AfterUpdate()
'-------START routine to set how many bedrooms
If Me.NumberOfBedrooms = 10 Then
Me.Page16.Visible = True
Me.Page15.Visible = True
Me.Page14.Visible = True
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 9 Then
Me.Page16.Visible = False
Me.Page15.Visible = True
Me.Page14.Visible = True
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 8 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = True
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 7 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 6 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 5 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 4 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 3 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 2 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = False
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 1 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = False
Me.Page08.Visible = False
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 0 Or Me.NumberOfBedrooms = Null Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True
End If
'-------END routine to set how many bedrooms

End sub

--------------------
 
B

Brian Kastel

Here's a more elegant way to code that routine, but I don't know if it will
improve your speed any. However, if you later add more pages or change
their numbering, recoding will be a lot simpler because you just have to
change two constants!

=== START OF CODE ====================

Private Sub NumberOfBedrooms_AfterUpdate()

Dim i As Integer
Dim n As Integer
Dim cName As String

Const fp = 7 'number of first page to alter
Const np = 10 'number of pages to be altered

n = Val(Me.NumberOfBedrooms)
'Special case for zero.
If Nz(n, 0) = 0 Then n = 3

For i = 0 to np - 1
cName = "Page" & String$(2 - Len(Trim$(i + fp)), "0") & Trim$(i +
fp)
If i >= n then
Me.Controls(cName).Visible = False
Else
Me.Controls(cName).Visible = True
End If
Next i

End Sub

=== END OF CODE ====================

--

Brian Kastel


--Original Message----------------


hi guys,

i have a form with a large tab control on it., it has about 60 tabs.
well, when i change which tabs show with code, it takes several seconds
for it to refresh on the screen.
i am not running a slow pc, it is a 2.4ghz.
Can any of you think of a way to speed this up ?
here is one piece of code I am using to do this.
thanks,
Please email me at:
(e-mail address removed)


Code:
--------------------

Private Sub NumberOfBedrooms_AfterUpdate()
'-------START routine to set how many bedrooms
If Me.NumberOfBedrooms = 10 Then
Me.Page16.Visible = True
Me.Page15.Visible = True
Me.Page14.Visible = True
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 9 Then
Me.Page16.Visible = False
Me.Page15.Visible = True
Me.Page14.Visible = True
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 8 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = True
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 7 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = True
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 6 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = True
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 5 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = True
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 4 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = True
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 3 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 2 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = False
Me.Page08.Visible = True
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 1 Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = False
Me.Page08.Visible = False
Me.Page07.Visible = True

ElseIf Me.NumberOfBedrooms = 0 Or Me.NumberOfBedrooms = Null Then
Me.Page16.Visible = False
Me.Page15.Visible = False
Me.Page14.Visible = False
Me.Page13.Visible = False
Me.Page12.Visible = False
Me.Page11.Visible = False
Me.Page10.Visible = False
Me.Page09.Visible = True
Me.Page08.Visible = True
Me.Page07.Visible = True
End If
'-------END routine to set how many bedrooms

End sub

--------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top