Solved

Automatically changing subforms

Posted on 2004-04-27
4
330 Views
Last Modified: 2008-03-06
Hi.  I've overloaded a tab page with way too many pages, each of which contains a few calculated subforms which, overall, is overwhelming my application.

As opposed to cutting up the tabs into several, smaller tab pages, I wanted to see if I could just automatically change subforms via a script -- that is, simulate how a web page works with frames (i.e., you have a master "form", and depending on what buttons you press, it will open deferent "subforms" in a designated subform area).

Was wondering if I could click on a button, and have it change the data source of the subform (e.g., subforma, subformb, subformc)?  This would save me a lot of recoding time, and presumably reduce the burden on the application by keeping closed subforms that I'm not using anyway.

Many thanks!

Farron
0
Comment
Question by:flevy
  • 2
  • 2
4 Comments
 
LVL 3

Expert Comment

by:SiJP
ID: 10930397
Yep there is....

... in its simplest terms...

Private Function fChangeSubForm

 Dim mySubfrm as String
 mySubfrm = fsubSomeFormName

 subfrmobject.SourceObject = mySubFrm

End Function

0
 
LVL 3

Accepted Solution

by:
SiJP earned 250 total points
ID: 10930502
Bit more detail...

If you want to change the subfrm by selecting it, you could have somthing like this:

Create a Combo box on your form (cboSubfrms)
Create a subfrm (Subfrm)

add code:

Private Sub cboSubfrms_Change()
 subfrm.SourceObject = cboSubfrms.Value
End Sub

Private Sub Form_Open(Cancel As Integer)
    cboSubfrms.ColumnCount = 2
    cboSubfrms.RowSourceType = "Value List"
    cboSubfrms.ColumnWidths = "0;4"
    cboSubfrms.RowSource = "fsubmysubfrm; My Sub Form; fsubmysubfrmagain; Another Sub Form"
End Sub

0
 

Author Comment

by:flevy
ID: 10941800
Works great -- thanks.  One follow-on question...

When I change the subforms, how do I then grab values from that subform?  Whenever a new subform comes up, I wanted to grab a specific calculation from that subform.  However, I'm having difficulty doing that.  Logically, I'd like code to perform the following function:

For Form/subformA combination:
Form.sfAdatacapture = Form.subformA.finalcalc

Then, when Form/subformB displays, capture similar data:
Form.sfAdatacapture = Form.subformB.finalcalc

Problem is, once a new subform is in place, it doesn't seem to recognize the traditional Form.subform.control path.  Does the original Form.subform persist as some kind of mask, such that I need to code the controls on various subforms the sames way?

Thanks!
0
 

Author Comment

by:flevy
ID: 10942725
Just tested the 'mask' theory another way, and it works.

Thanks for the initial solution.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

QuickBooks® has a great invoice interface that we were happy with for a while but that changed in 2001 through no fault of Intuit®. Our industry's unit names are dictated by RUS: the Rural Utilities Services division of USDA. Contracts contain un…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now