Fix Microsoft Access Report Blank When Filtered by Form List Box
Question details
The user needs to fix a Microsoft Access report that outputs blank results when filtered using list box controls on a form, even though the query and report work independently.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Filtering an Access report using form list box controls for company, year, and quarter, where the query currently relies on LIKE expressions.
- Observed behavior
- The report displays as completely blank when the list box filters are applied, likely due to mismatched query parameters, hidden numeric keys, or multi-select list box constraints.
Ensure your Access database is backed up before modifying query expressions or form control properties, and verify that the form remains open in the background when the report runs so the query can successfully read the list box values.
Replace LIKE Expressions with OR IS NULL Logic
Use this method to correctly handle optional parameters in Access queries, as LIKE with wildcards is unreliable for optional filters and can cause blank reports.
When referencing form controls as optional query parameters, using the LIKE operator with wildcards can fail to return records containing null values and can cause severe performance issues. Instead, evaluating whether the control matches the column or if the control is null provides a robust solution.
Right-click the query that drives your report in the Navigation Pane and select 'Design View'.
Find the column you are filtering (e.g., Company, Year, or Quarter) and remove the existing LIKE expression from the Criteria row.
In the Field row, create a new calculated column or apply the criteria directly using this logic: (YourColumnName = Forms!YourFormName!YourListBoxName OR Forms!YourFormName!YourListBoxName IS NULL).
Save the query. Open your form, select a value in the list box, and run the report to ensure data is displayed correctly.

Match Query Criteria to the Bound Column
Verify that your query filters by the correct data type by checking if the list box is passing a hidden numeric ID instead of displayed text.
Verify List Box Multi-Select Settings
Standard query parameters cannot interpret multiple selections from a list box. You must check if multi-select is enabled.
Looking for a Free Office Alternative to Manage Your Data?
While Microsoft Access handles complex relational databases, many users find that their data management needs can be easily met with a powerful spreadsheet tool. WPS Office is a highly compatible, free, and lightweight alternative to Microsoft Office. With WPS Spreadsheet, you can seamlessly import your Access data exports, apply advanced filters, and generate comprehensive reports without writing complex queries.
- 1. Download WPS Office: Install the lightweight, free WPS Office suite on your device.
- 2. Export Access Data: Export your Microsoft Access tables or query results to an Excel (.xlsx) format.
- 3. Analyze in WPS Spreadsheet: Open the file in WPS Spreadsheet to use intuitive filters, PivotTables, and charting tools for your reports.

Frequently Asked Questions
Why does my Access query work perfectly but the report shows up blank?
This usually happens if the form containing the list box is closed before the report renders. The query driving the report needs the form to remain open in the background to read the list box parameter values. Additionally, ensure the data types match between the query criteria and the list box's bound column.
Can I use a multi-select list box to filter an Access query directly?
No, standard Access parameter queries cannot interpret multiple values selected in a list box. If Multi-Select is enabled, the control evaluates to Null in a query. You must use VBA to loop through the ItemsSelected collection and build a dynamic filter string using the SQL IN operator.
Why shouldn't I use the LIKE operator for optional parameters in Access?
Using LIKE with wildcards (e.g., LIKE '*' & Forms!MyForm!MyControl & '*') for optional parameters can lead to missing records if your data contains Null values. It also prevents the database engine from using indexes efficiently, which can cause severe performance slowdowns on larger databases.




