Forum Discussion

Tony2021's avatar
Tony2021
Steel Contributor
Sep 05, 2021
Solved

Filter form

Hello, I have a filter form with filters to be applied to a report on open.  I want to be able to filter the report based on what I choose in cboDept.  cboDept is unbound with has a rowsource query...
  • George_Hepworth's avatar
    George_Hepworth
    Sep 06, 2021

    Tony2021 

     

    It appears that one problem lies in the where clause in the SQL for the report's recordsource. It uses "OR" to apply either of two criteria to the records. If records pass one of those two criteria, it doesn't matter if the other would eliminate them. All of the records are passing the first part of the WHERE clause, before the OR. The second part would otherwise limit records only to the selected department, but that doesn't matter. They are all passed through in the first part anyway.

     

    SELECT tblAppendPQ.*, tblAppendPQ.[Responsible Area]


    FROM tblAppendPQ


    WHERE (((tblAppendPQ.[Due Date])>=[forms]![frmFilter_ShortByMonth]![txtDateFrom] And (tblAppendPQ.[Due Date])<[forms]![frmFilter_ShortByMonth]![txtDateTo]+1)) OR (((tblAppendPQ.[Due Date])>=[forms]![frmFilter_ShortByMonth]![txtDateFrom] And (tblAppendPQ.[Due Date])<[forms]![frmFilter_ShortByMonth]![txtDateTo]+1) AND ((tblAppendPQ.[Responsible Area])=[forms]![frmFilter_ShortByMonth]![txtDept]));

     

    However, there is a second problem in the design of the table and the combo box on the form.

     

    In the table, "Responsible Area" is a TEXT field. However, it should be a Long Integer, and instead of the text string, such as "Controller", it should be the value of the corresponding Primary Key in the Department table. That field is called "ID". It's the same one used in the combo box on the form.

     

    Your criteria is written so that it is using the bound column of the combo box, which is the first column, or Column 1. That is the ID -- a number. However, in the query, it is applied to the text field "Responsible Area", which has the string value "Controller", etc.

     

    You can correct this part of the problem by changing the bound column of the combo box, called "txtDept" from 1 to 2. That's easier than correcting the table design.

     

    I know this part is confusing and my previous answer probably didn't really help.

    There are two ways we can refer to the columns in combo and list boxes.

     

    In the FORM's property sheet, the 1st column on the left is column 1. However, in VBA and other places, though, you'd refer to the INDEX of that column, which would be 0. 

     

    You'll need to change both of these things.