Search code examples
sqlms-accessms-access-2010ms-access-2013ms-access-2016

Access Multi Criteria Query to include Blanks/Null records if control is empty (IS NULL)


I am trying to create a multi-criteria query based on several combo boxes where if they are left empty, the result should include all records. I have tried several variations of below but to no use. I did a lot of searching and found to inculde OR 'Control Name' IS NULL but still can't seem to get it working. I am trying to sum up Revenue grouped by Revenue Identifier (eg. Verified/Unverified/Deleted).

SELECT Sum(sTblLineItemMaster.lineItemTotal) AS SumOflineItemTotal, sTblLineItemMaster.lineItemStatus

FROM sTblActivityMaster INNER JOIN sTblLineItemMaster ON sTblActivityMaster.actID = sTblLineItemMaster.lineItemActID

WHERE 
((sTblActivityMaster.actTargetYear=[Forms]![frmActivityList]![cmbSearchYear] Or [Forms]![frmActivityList]![cmbSearchYear] Is Null) AND
(sTblActivityMaster.actTargetMonth=[Forms]![frmActivityList]![cmbSearchMonth] Or [Forms]![frmActivityList]![cmbSearchMonth] Is Null) AND
(sTblActivityMaster.actTargetWeek=[Forms]![frmActivityList]![cmbSearchWeek] Or [Forms]![frmActivityList]![cmbSearchWeek] Is Null) AND
(sTblActivityMaster.actCategory=[Forms]![frmActivityList]![cmbSearchCategory] Or [Forms]![frmActivityList]![cmbSearchCategory] Is Null) AND
(sTblActivityMaster.actCustOwner=[Forms]![frmActivityList]![cmbSearchOwner] Or [Forms]![frmActivityList]![cmbSearchOwner] Is Null) AND
(sTblActivityMaster.actRegion=[Forms]![frmActivityList]![cmbSearchCoordinatorRegion] Or [Forms]![frmActivityList]![cmbSearchCoordinatorRegion] Is Null) AND
(sTblActivityMaster.actMode=[Forms]![frmActivityList]![cmbSearchMode] Or [Forms]![frmActivityList]![cmbSearchMode] Is Null) AND
(sTblActivityMaster.actCreator=[Forms]![frmActivityList]![cmbSearchCoordinator] Or [Forms]![frmActivityList]![cmbSearchCoordinator] Is Null) AND
(sTblActivityMaster.actSection=[Forms]![frmActivityList]![cmbSearchSection] Or [Forms]![frmActivityList]![cmbSearchSection] Is Null) AND
(sTblActivityMaster.actProject=[Forms]![frmActivityList]![cmbSearchProject] Or [Forms]![frmActivityList]![cmbSearchProject] Is Null) AND
(sTblActivityMaster.actRevenueBookStatus=[Forms]![frmActivityList]![cmbSearchRevenue] Or [Forms]![frmActivityList]![cmbSearchRevenue] Is Null) AND
(sTblActivityMaster.actVerificationStatus=[Forms]![frmActivityList]![cmbSearchVerification] Or [Forms]![frmActivityList]![cmbSearchVerification] Is Null) AND
(sTblActivityMaster.actAcceptanceStatus=[Forms]![frmActivityList]![cmbSearchAcceptance] Or [Forms]![frmActivityList]![cmbSearchAcceptance] Is Null) AND
(sTblActivityMaster.actKPIStatus=[Forms]![frmActivityList]![cmbSearchKPI] Or [Forms]![frmActivityList]![cmbSearchKPI] Is Null) AND
(sTblActivityMaster.actInvoicingStatus=[Forms]![frmActivityList]![cmbSearchInvoicing] Or [Forms]![frmActivityList]![cmbSearchInvoicing] Is Null))

GROUP BY sTblLineItemMaster.lineItemStatus;

Can anyone please check if syntax is OK or if any other modification is needed. Thanks


Solution

  • As I am using ComboBoxes to get the search criteria and the empty combo boxes return a "" and not NULl, so the query wasn't returning the results. So what I did was that when search button is pressed to run the query, I set all empty or "" comboboxes to NULL in VBA. That did the trick and results appeared.