You have a field name "Count". This is a reserved word in Access and shouldn't be used as an object name.
You have special characters in field names. Should only use letters, numbers and possibly the underscore.
You have open & close parenthesis in field names and spaces.
In the SUM(), you don't need the 2nd IIF() function.
Try this (I think I might have the parenthesis right:
Code:
SELECT Vendor_Rates.RateW, DB.Product, DB.[Client Name], DB.[Project Name], DB.Unit, DB.[Out by Vendor], DB.[Delivery Date], DB.Status, DB.[Count], DB.Task, Sum(IIf(DB.[Task]='Review', Switch([DB].[Unit]='Word(s)', ([Vendor_Rates.RateW]*[DB].[Out by Vendor]), [DB].[Unit]='Page(s)', ([Vendor_Rates.RateP]*[DB].[Out by Vendor]), [DB].[Unit]='Hour(s)', ([Vendor_Rates.RateH]*[DB].[Out by Vendor])), Switch([DB].[Unit]='Word(s)',([Vendor_Rates.RateW]*[DB].[Count]), [DB].[Unit]='Page(s)', ([Vendor_Rates.RateP]*[DB].[Count]), [DB].[Unit]='Hour(s)', ([Vendor_Rates.RateH]*[DB].[Count])))) AS VendorBilling
FROM DB INNER JOIN Vendor_Rates ON DB.Product = Vendor_Rates.Product
WHERE (((DB.[Delivery Date]) Between #9/16/2013# And #9/20/2013#))
GROUP BY Vendor_Rates.RateW, DB.Product, DB.[Client Name], DB.[Project Name], DB.Unit, DB.[Out by Vendor], DB.[Delivery Date], DB.Status, DB.[Count], DB.Task, Vendor_Rates.RateP, Vendor_Rates.RateH;