[AccessD] JIT Forms

Rocky Smolin at Beach Access Software rockysmolin at bchacc.com
Fri Nov 9 11:56:16 CST 2007


Unfortunately, in my case.  MOST of the bound fields are not in subforms but
scattered throughout the multiple tabs.

I think we're going for the one record or very few records  approach by
modifying the Record Source on the fly rather than using form filters as it
is now.  Hopefully that reduces what's coming over the wire.

Brings up another question - if a filter is set on Open, do all the records
come over anyway and access just makes the filtered subset available to the
form?

Rocky





 	
	

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

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

--
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
 




More information about the AccessD mailing list