[AccessD] JIT Forms

Charlotte Foust cfoust at infostatsystems.com
Fri Nov 9 11:34:46 CST 2007


I'm not suggesting binding subforms until they're loaded, John.  I don't
do that either.  I'm saying you don't need a full dataset behind the
parent form if all your subforms are going to be bound WHEN THEY'RE
LOADED.  You can get by with a snapshot of the key fields at most.

Charlotte Foust 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Friday, November 09, 2007 8:10 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] JIT Forms

Charlotte,

I don't understand what you are saying here.  What problem are you
solving?

Binding the subforms before they are actually viewed causes the form to
slow down as it loads all of the subforms and their respective controls,
even though the user may in fact never visit the subforms (that tab).  

So leave the subform controls with no source object (form name) until
the tab is clicked on (JIT subforms).
Now in the query for the main form just specify a filter for the PKID of
the parent object, claimID if the form displays claims,  CustomerID if
the form displays customers etc.

By feeding the query one specific PKID it will pull only that one record
for the main form.  The subforms on the tabs do not load until the tab
is clicked.  That is about as fast as you are going to get to actually
load the form and its data.

So what are you saying?

John W. Colby
Colby Consulting
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte
Foust
Sent: Friday, November 09, 2007 10:45 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] JIT Forms

Rocky,

If you bind just subforms, not the main form, you solve that problem.
Basically, all you need in the main form is the fields to link to,
although, they don't have to be in bound controls, so you could populate
them from code for each tab.

Charlotte Foust 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
at Beach Access Software
Sent: Thursday, November 08, 2007 8:40 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] JIT Forms

I'm good to go.  Thanks.  However, converting all the combos and
subforms to JIT still did not yield an acceptable opening time.  The
reocrdsource for the main form is retrieving all the records and the
navigation buttons are at the bottom of the form.  I have asked the
client if users would really use those buttons to move from one record
to another.  I'm thinking not.  In which case  retrieving one record
might be the hot ticket.

Thanks and regards,

Rocky





 	
	

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Thursday, November 08, 2007 7:36 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] JIT Forms

And that is really about all there is to it.  Except...

You need to be careful about the Link Master / child properties.  I
leave them set and just change the source object IIRC.

Beyond that you need to make the decision whether to leave the subforms
bound or unbind them as the user clicks off the tab.  And no I don't do
anything about loading the combos specifically.  Since only the combos
on the specific subforms loading are at issue, this will not tend to be
a problem.

Since everyone else jumped in with info I will let you ask if you need
more than that.

John W. Colby
Colby Consulting
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
at Beach Access Software
Sent: Thursday, November 08, 2007 8:19 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] JIT Forms

Aha. That's what I was looking for. Change event.  Too bad there isn't a
GotFocus or Activate event for each page.  But this will work.   I can
do a
Select Case on the page and load the controls for that page in the case
for each tab.  That will work!

Thanks

Rocky
 




 	
	

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darren D
Sent: Thursday, November 08, 2007 3:37 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] JIT Forms

Hi Rocky

Not so sure about JC's cool JIT logic

But there is an OnChange event for Tabs - Way cool very powerful and
easy to manipulate

See below for some Code snips below I am using for a 10 Tab Form

Now it is a snip so some of it may not work correctly etc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Private Sub tabMain_Change()

On Err GoTo Err_tabMain_Change

Dim intClientID As Integer

intClientID = Me.tabMain

Dim tbc As Control
Dim pg As Page
Dim ctl As Control

Dim db As DAO.Database
Dim selSQL As String
Dim rs As DAO.Recordset

Set tbc = Me!tabMain
Set pg = tbc.Pages(tbc.Value) 'Current page

Set db = CurrentDb
selSQL = "SELECT tblClients.ClientID, tblClients.ClientName,
tblClients.DatabaseName, tblClients.ClientAbbrev, tblClients.IsCurrent,
tblClients.IsNowDeleted FROM tblClients WHERE
(((tblClients.IsCurrent)=-1) AND
((tblClients.IsNowDeleted) Is Null Or (tblClients.IsNowDeleted)=0));"

Set rs = db.OpenRecordset(selSQL)

'reset things to true or false if true may exist for more thant 1 tab

If pg.Name = "pgOptions" Then ' Option Page - Don't show everything for
the clients - Show the setup options only
            Forms!xfrmBeast!subfrmOptions.SourceObject =
"sub_frmBeastOptions"
            Forms!xfrmBeast!subfrmLocalOptions.SourceObject =
"sub_frmLocalOptions"

            Me.subfrmMain.Visible = False
            Me.tabOptions.Visible = True
            Me.subfrmNotes.Visible = False
            Me.subfrmContacts.Visible = False
            Me.tabSupport.Visible = False
            
            'Determine what controls get seen or used
	For Each ctl In Me.Controls
                If ctl.Tag <> "" Then
                    ctl.Enabled = False
                End If
            Next
        
	ElseIf Me("pg" & Me.tabMain).Caption = "Active" Then
        
        ElseIf Me("pg" & Me.tabMain).Caption = "SomeText" Then
            Me.cmdBFM.Enabled = False
        Else
   
            For Each ctl In Me.Controls
                 If ctl.Tag <> "" Then
                    ctl.Enabled = True
                End If
            Next
            
            Me.tabOptions.Visible = False
            
        End If

Me.subfrmMain.Requery
Me.subfrmNotes.Requery
Me.subfrmContacts.Requery

Me.txtClientID = Forms!xfrmBeast.tabMain

txtInvoiceSearch = ""
txtAccountNo = ""

If intClientID = 0 Then
    Me.subfrmContacts.Form.lblAdviceContacts.Caption = "General
Contacts"
    Me.subfrmNotes.Form.lblAdviceNotes.Caption = "General Notes"
    Me.lblMain.Caption = "Options and Settings"
    txtInvoiceSearch.Enabled = False
    txtAccountNo.Enabled = False
ElseIf intClientID = 1 Then
    Me.subfrmContacts.Form.lblAdviceContacts.Caption = "Active Contacts"
    Me.subfrmNotes.Form.lblAdviceNotes.Caption = "Active Info"
    Me.lblMain.Caption = "Details about...us"
    txtInvoiceSearch.Enabled = False
    txtAccountNo.Enabled = False
ElseIf intClientID = 2 Then
    Me.subfrmContacts.Form.lblAdviceContacts.Caption = "Contacts for
Client:
" & Me("pg" & intClientID).Caption
    Me.subfrmNotes.Form.lblAdviceNotes.Caption = "Notes For Client: " &
Me("pg"
& intClientID).Caption
    Me.lblMain.Caption = "Bureau Details for: " & Me("pg" &
intClientID).Caption
    txtInvoiceSearch.Enabled = True
    txtAccountNo.Enabled = True
ElseIf intClientID > 1 Then
    Me.subfrmContacts.Form.lblAdviceContacts.Caption = "Contacts for
Client:
" & Me("pg" & intClientID).Caption
    Me.subfrmNotes.Form.lblAdviceNotes.Caption = "Notes For Client: " &
Me("pg"
& intClientID).Caption
    Me.lblMain.Caption = "Bureau Details for: " & Me("pg" &
intClientID).Caption
    txtInvoiceSearch.Enabled = True
    txtAccountNo.Enabled = True
End If

rs.Close
db.Close

Set rs = Nothing
Set db = Nothing

Exit_tabMain_Change:
Exit Sub

Err_tabMain_Change:

MsgBox Err.Number & " " & Err.Description, vbCritical, "Error in tbMain
Change"
Resume Exit_tabMain_Change

End Sub
































Many thanks
 
Have a great day
 
Darren
-----------------
T: 1300 301 731
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
at Beach Access Software
Sent: Friday, 9 November 2007 9:32 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] JIT Forms

JC:
 
I have a form with about 16 tabs, a bunch of combo boxes, and a bunch of
sub-forms.  It will not surprise you to learn that it is taking an
unacceptably long time to open - 60 seconds on a smallish database over
a wireless connection to my laptop (trying to simulate a slow server).
 
I remember something about a form like this that you had and, I believe,
loading the combo boxes and sub forms only when a tab got the focus?
The combo boxes are bound so I can't wait to put in the row source until
they're clicked.  But I could load the row source when the tab was
activated
- store the row source in the tag and load it if it's not there.  But
there's no activate or got focus event for a tab.  There is a mouse move
event but I'm not sure that will do  to trigger loading of the Row
Source and the sub-forms. 
 
How did you solve the problem?

Regards,
 
Rocky
 

 	
	
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.503 / Virus Database: 269.15.24/1117 - Release Date:
11/7/2007
10:52 PM
 

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.503 / Virus Database: 269.15.26/1119 - Release Date:
11/8/2007
5:55 PM
 

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list