Checkbox parameter query syntax

I can't seem to get the following code to work.

frmPR has several combo boxes and 4 checkboxes that the user can select (one or more). I would like it to filter the results based on what the user checks - whether it be just A, or A and B, etc. I also need it to display ALL records if the user does not check anything. I was able to get it to filter based on the checkboxes but it wouldn't display all if no checkboxes are selected. Or I was able to display all but it wouldn't filter properly. :(
There are other fields with Like Iif... filters that are currently working right now (but not tied to checkboxes, just combo boxes). I am trying to turn one of the combo boxes into a check box since the user needs to select one or more of the contents.
What am i doing wrong?

Please and thank you,
j
Like IIf(([Forms]![frmPR]![chkA])=True,"A","*")  Or Like IIf(([Forms]![frmPR]![chkB])=True,"B","*") Or Like IIf(([Forms]![frmPR]![chkC])=True,"C","*") Or Like IIf(([Forms]![frmPR]![chkD)=True,"D","*")

Open in new window

jenica024Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

pcelbaCommented:
The Like operator needs two operands but you have just one. The column name from your table is missing. One possible solution is in attached code. For me it seems more probable to use AND operators. If you tell what the condition should test and what columns should be included then we may help better.
ColumnA Like IIf(([Forms]![frmPR]![chkA])=True,"A","*")  Or 
ColumnB Like IIf(([Forms]![frmPR]![chkB])=True,"B","*") Or 
ColumnC Like IIf(([Forms]![frmPR]![chkC])=True,"C","*") Or 
ColumnD Like IIf(([Forms]![frmPR]![chkD)=True,"D","*")

Open in new window

0
shru_0409Commented:
0
shru_0409Commented:
IIf(([Forms]![frmPR]![chkA])=True,"A","*")
 Or IIf(([Forms]![frmPR]![chkB])=True,"B","*")
 Or IIf(([Forms]![frmPR]![chkC])=True,"C","*")
 Or IIf(([Forms]![frmPR]![chkD)=True,"D","*")
0
The 7 Worst Nightmares of a Sysadmin

Fear not! To defend your business’ IT systems we’re going to shine a light on the seven most sinister terrors that haunt sysadmins. That way you can be sure there’s nothing in your stack waiting to go bump in the night.

shru_0409Commented:
0
jenica024Author Commented:
Sorry - to explain better:
i have a column called "Type" - which contains either A, B, C or D. Before I just used:
Like IIf(IsNull([Forms]![frmPR]![cboType]),"*",[Forms]![frmPR]![cboType])
which worked really well because the user can select a type from the combo box in a form and it will show all A's or B's, etc. Also, if the user selected none it showed all records.
Now they want to be able to select one or more types. Say A and B or B and C, etc. I thought putting check boxes was the way to go..but if you have other suggestions I would explore those too. I could only get one of the conditions working - say i could get the checkboxes to filter out one or more types but when the boxes aren't checked it wouldn't show all records.

shru_0949:
i got this far before and it did work for the checkbox selections but it would not print all if no checkboxes were selected. :(
0
pcelbaCommented:
Then you need to create a simple pattern:


Dim Pattern As String
Pattern = IIf(([Forms]![frmPR]![chkA])=True,"A","") + 
          IIf(([Forms]![frmPR]![chkB])=True,"B","") +
          IIf(([Forms]![frmPR]![chkC])=True,"C","") +
          IIf(([Forms]![frmPR]![chkD])=True,"D","")
Pattern = IIf(Pattern = "", "*", "[" + Pattern + "]")
 
'and use the Pattern in Like operation:
TypeCol Like Pattern 

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jenica024Author Commented:
i just want to clarify: i will need to put this in a module and in design view of the query in the criteria field use it?
thanks so very much...
0
jenica024Author Commented:
thank you for the help. :)
0
pcelbaCommented:
If you need to put it into query then you have to create user function or write it as one expression, e.g. this way:

TypeCol LIKE IIf( ([Forms]![frmPR]![chkA]) OR 
                  ([Forms]![frmPR]![chkB]) OR 
                  ([Forms]![frmPR]![chkC]) OR 
                  ([Forms]![frmPR]![chkD]), "[" +
          IIf(([Forms]![frmPR]![chkA]),"A","") + 
          IIf(([Forms]![frmPR]![chkB]),"B","") +
          IIf(([Forms]![frmPR]![chkC]),"C","") +
          IIf(([Forms]![frmPR]![chkD]),"D","") + "]", "*") 

Open in new window

0
jenica024Author Commented:
Sorry to be asking this late...what is TypeCol?
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.