Solved

Populating a sub form from a combo box selection

Posted on 2008-06-23
11
466 Views
Last Modified: 2013-11-28
I'm currently using Access 2003, and the problem that I'm running into is that when I attempt to use the autoupdate command in the code snippet below, my subform says its 'Filtered', but nothing appears in the sub form.  I think the problem may lie in the fact that my combo box cboItemNum2 is actually pulling all of its values from our server SQL database, where the subform is gathering data from a local Access database.  Reason being, we're attempting to create a bill of materials inventory, and all of the parts are entered into one form, going to table 'tblBOMParts'.  Another form is meant to view all of these entered parts (called frmTestView).  Two combo boxes filter all known parts from our SQL database (first combo box selects all available classes, and once 'Class' is selected, then all of the parts for that class are displayed in the second combo box).  I want this second combo box, which is unbounded, to query the table tblBOMParts, and filter all of parts to equal the selection in the 2nd combo box.  Is there a parent-child relationship that I'm missing here?  When I first open frmTestView, a couple parts show up on the subform, even though nothing is selected.  I am really confused, and I don't know what's causing those couple parts to show up, and even more so, why nothing shows up when I make a selection.

Thanks,

Ryan
Private Sub cboItemNum2_AfterUpDate()
Me.sfmViewPart.Form.Filter = "BOMPartNum='" & Me.cboItemNum2 & "'"
Me.sfmViewPart.Form.FilterOn = True
End Sub

Open in new window

0
Comment
Question by:jdol2949
  • 5
  • 3
  • 3
11 Comments
 

Author Comment

by:jdol2949
ID: 21846752
UPDATE:      Ok, I had a parent-child relationship set.. which was causing nothing to show up.  But now my problem is 'How do I get the subform to not show the entire table tblBOMParts when I open the main form frmTestView?'  Currently, when I open the form, all data is displayed in the boxes below.  If you can answer this simple question, I will award all 500 points.
0
 
LVL 7

Expert Comment

by:Chrisedebo
ID: 21846821
Try putting the following line at the bottom of the after update snippet
Me.sfmViewPart.Requery

Open in new window

0
 
LVL 7

Expert Comment

by:Chrisedebo
ID: 21846828
Set the filter in design view to be BOMPartNum = ''
0
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

 

Author Comment

by:jdol2949
ID: 21846905
the filter for the sub form?  I applied the filter to the sub form and the main form, and even still, all of the parts in tblBOMParts are being displayed in the subform window.  I'd like it if nothing at all showed up in the sub form window until I make a selection from the two combo boxes on the main form.

Thank you,

Ryan
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 21846957
<I'd like it if nothing at all showed up in the sub form window until I make a selection from the two combo boxes on the main form.>

set the filtered record source of the subform in the afterupdate event of the the two combo boxes

you can load the subform with a query like this

select * from tableName where 1=0

0
 

Author Comment

by:jdol2949
ID: 21847046
Below is what my VB code currently looks like for the two combo boxes.  Please let me know what I need to change in order for the subform to be blank upon the opening the main form.
Private Sub cboItemNum2_AfterUpDate()
Me.sfmViewPart.Form.Filter = "BOMPartNum='" & Me.cboItemNum2 & "'"
Me.sfmViewPart.Form.FilterOn = True
Me.sfmViewPart.Requery
(I don't know how to make this correct) Me.sfmViewPart.RowSource = "select * from tblBOMParts where 1=0"
End Sub
 
Private Sub cboItemNum1_AfterUpdate()
    Me.cboItemNum2.RowSource = "SELECT ItemNmbr FROM [Item] WHERE [Class] = '" & Me.cboItemNum1 & "'"
End Sub

Open in new window

0
 
LVL 7

Assisted Solution

by:Chrisedebo
Chrisedebo earned 50 total points
ID: 21847165
Me.sfmViewPart.RowSource = "select * from tblBOMParts where 1=0"

should be

Me.sfmViewPart.RecordSource = "select * from tblBOMParts where 1=0"
0
 
LVL 120

Assisted Solution

by:Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1) earned 450 total points
ID: 21847244
you don't set the recordsource of the subform with

select * from tblBOMParts where 1=0

in the afterupdate of the combo, you will not get anything

in the design view of the subform

place this in the Record Source on the Data tab

select * from tblBOMParts where 1=0

'*********

in the afterupdate of the combo change the record source of the subform with a filter

Private Sub cboItemNum2_AfterUpDate()
Me.sfmViewPart.RecordSource="select * from tblBOMParts where BOMPartNum='" & Me.cboItemNum2 & "'"

end sub


0
 

Author Comment

by:jdol2949
ID: 21847399
it's saying Compile Error:  member or method not found (something along those lines)
It refers to the afterupdate of cboItemNum2
Private Sub cboItemNum2_AfterUpDate()
Me.sfmViewPart.Form.Filter = "BOMPartNum='" & Me.cboItemNum2 & "'"
Me.sfmViewPart.Form.FilterOn = True
Me.sfmViewPart.RecordSource = "SELECT * FROM [tblBOMParts] WHERE [BOMPartNum] = '" & Me.cboItemNum2 & "'"
End Sub
 
Private Sub cboItemNum1_AfterUpdate()
    Me.cboItemNum2.RowSource = "SELECT ItemNmbr FROM [Item] WHERE [Class] = '" & Me.cboItemNum1 & "'"
End Sub

Open in new window

0
 
LVL 120

Accepted Solution

by:
Rey Obrero (Capricorn1) earned 450 total points
ID: 21847604
try this, remove the filteron and filter lines , you don't need them

Private Sub cboItemNum2_AfterUpDate()
Me.sfmViewPart.Form.RecordSource="select * from tblBOMParts where BOMPartNum='" & Me.cboItemNum2 & "'"

end sub
0
 

Author Closing Comment

by:jdol2949
ID: 31469771
Thanks guys.
0

Featured Post

Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

Question has a verified solution.

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

This article describes how to use the timestamp of existing data in a database to allow Tableau to calculate the prior work day instead of relying on case statements or if statements to calculate the days of the week.
Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

762 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