Solved

Populating a sub form from a combo box selection

Posted on 2008-06-23
11
463 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
 

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 119

Expert Comment

by:Rey Obrero
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
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 

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 119

Assisted Solution

by:Rey Obrero
Rey Obrero 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 119

Accepted Solution

by:
Rey Obrero 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

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Suggested Solutions

Composite queries are used to retrieve the results from joining multiple queries after applying any filters. UNION, INTERSECT, MINUS, and UNION ALL are some of the operators used to get certain desired results.​
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 utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
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…

911 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

25 Experts available now in Live!

Get 1:1 Help Now