Solved

Checkbox parameter query syntax

Posted on 2009-07-03
10
318 Views
Last Modified: 2013-11-28
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

0
Comment
Question by:jenica024
  • 4
  • 3
  • 3
10 Comments
 
LVL 41

Expert Comment

by:pcelba
ID: 24772689
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
 
LVL 14

Expert Comment

by:shru_0409
ID: 24772717
0
 
LVL 14

Assisted Solution

by:shru_0409
shru_0409 earned 100 total points
ID: 24772873
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
 
LVL 14

Expert Comment

by:shru_0409
ID: 24772877
0
 

Author Comment

by:jenica024
ID: 24773089
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
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 41

Accepted Solution

by:
pcelba earned 400 total points
ID: 24773224
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
 

Author Comment

by:jenica024
ID: 24776916
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
 

Author Closing Comment

by:jenica024
ID: 31599578
thank you for the help. :)
0
 
LVL 41

Expert Comment

by:pcelba
ID: 24777251
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
 

Author Comment

by:jenica024
ID: 24842381
Sorry to be asking this late...what is TypeCol?
0

Featured Post

Complete Microsoft Windows PC® & Mac Backup

Backup and recovery solutions to protect all your PCs & Mac– on-premises or in remote locations. Acronis backs up entire PC or Mac with patented reliable disk imaging technology and you will be able to restore workstations to a new, dissimilar hardware in minutes.

Join & Write a Comment

'Between' is such a common word we rarely think about it but in SQL it has a very specific definition we should be aware of. While most database vendors will have their own unique phrases to describe it (see references at end) the concept in common …
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.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
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…

746 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

13 Experts available now in Live!

Get 1:1 Help Now