Solved

Populating a sub form from a combo box selection

Posted on 2008-06-23
11
468 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

 

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

I'm trying, I really am. But I've seen so many wrong approaches involving date(time) boundaries I despair about my inability to explain it. I've seen quite a few recently that define a non-leap year as 364 days, or 366 days and the list goes on. …
Access custom database properties are useful for storing miscellaneous bits of information in a format that persists through database closing and reopening.  This article shows how to create and use them.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

734 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