Without MS Query, you can use VBA. For example, use ADO to populate a recordset. If you need to filter, one way might be simply to filter the recordset. Then set the Excel pivotcache recordset to the same recordset, and complete the pivot table. There was a thread on Friday that had a similar idea. I'll have a look for a link.