Link to home
Start Free TrialLog in
Avatar of Sharon
SharonFlag for United States of America

asked on

Openform subform filter

I have a main form, frmMain, with a subform, sfrmJobInfo.  On the main form, I have a combo box that says find PO Number (it queries the data in PO number field in the subform). On the afterupate event for the combobox I want the code to pull up the records in the subform.  This does not work.

    stDocName = "frmMain"
    stLinkCriteria = Me.[sfrmJobInfo].Form.Filter = "[PO Number]=" & Me.[PO Number]
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Avatar of DatabaseMX (Joe Anderson - Former Microsoft Access MVP)
DatabaseMX (Joe Anderson - Former Microsoft Access MVP)
Flag of United States of America image

Try this instead - using the WHERE clause of the Form Open:

    stDocName = "frmMain"
    DoCmd.OpenForm stDocName,,, "[PO Number]=" & Me.[PO Number]

mx
Avatar of Sharon

ASKER

The button is on frmMain.  I need it to reopen frmMain with the data filtered in the subform based on the PO Number.
Avatar of Sharon

ASKER

The PO Number is text
< I need it to reopen frmMain>
Why?
Just filter it:

Try code like this on the main form combobox after update event:

[YourSubform].Form.Filter = "[PO Number]= " & Me.[PO Number]
[OrderDetails Subform].Form.FilterOn = True



JeffCoachman
...in other words, why re-open it when you can filter it in-place?
"The PO Number is text"

Then

    stDocName = "frmMain"
    DoCmd.OpenForm stDocName,,, "[PO Number]=" & Chr(34) & Me.[PO Number] & Chr(34)

mx
Avatar of Sharon

ASKER

I didn't know how else to approach it.

This is what I have.  The cboPoNumbers is returning the correct value and that value exists in the subform data.
The Main form and sub form are linked by Master and Child.  This looks like it should work, but it doesn't. Thanks for your help.

[sfrmShipped].Form.Filter = "[PO Number]= '" & Me.[cboPONumbers] & "'"
[sfrmShipped].Form.FilterOn = True
Avatar of Sharon

ASKER

Thanks, DatabaseMX.  But, the PO Number field is in the subform.
Did you see my post just above ?

This is all you should need - one line of code to replace your original code:

    DoCmd.OpenForm "frmMain" ,,, "[PO Number]=" & Chr(34) & Me.[PO Number] & Chr(34)

mx
Try this:

Me.sfrmShipped.Form.Filter = "[PO Number]=" & Chr(34) & Me.[PO Number] & Chr(34)
Me.sfrmShipped.Form.FilterOn = True
Avatar of Sharon

ASKER

DatabaseMX, I get a "it can't in the field PO Number" error message.  I rebuilt it in case it had a snake bite and it still doesn't work.   Can you help me with a work around. Thanks!

Is [PO Number] also on the main Form?

mx
Avatar of Sharon

ASKER

This is what you wrote:

Me.sfrmShipped.Form.Filter = "[PO Number]=" & Chr(34) & Me.[PO Number] & Chr(34)
Me.sfrmShipped.Form.FilterOn = True

I changed the me.[PO Number] to me.cboPONumber because it is actually pulling from the combobox:

Me.sfrmShipped.Form.Filter = "[PO Number]=" & Chr(34) & Me.cboPONumber & Chr(34)
Me.sfrmShipped.Form.FilterOn = True

The cboPONumber is on frmMain.  The PO Number field is in the subform.  Thanks again.
ok ... that should be working then, assuming PO Number is the correct spelling (?) ...

Can you upload the db?

mx
Avatar of Sharon

ASKER

I really appreciate it.  Is there an upload component on this site?
Avatar of Sharon

ASKER

The find PO combo box is on the top left.  
Shipping-Database-for-Experts.accdb
Right on this page .. File >> Add File ..
Please compact & Repair, then Zip up to reduce size.  Explain exactly how to reproduce the issue.
Remove any sensitive data ....

mx
Capture1.gif
ASKER CERTIFIED SOLUTION
Avatar of DatabaseMX (Joe Anderson - Former Microsoft Access MVP)
DatabaseMX (Joe Anderson - Former Microsoft Access MVP)
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Sharon

ASKER

Thanks so much for your help.  I just worked around it.  Not very elegant, but I came up with a solution.