I use Access as my database, and what I do is loop through my recordset,
store my data into an array, and then place this data into an existing
spreadsheet. I do this from within Excel. Once the data is loaded I
refresh my pivot table, which is also done via VBA and my pivot table is
up to date. Since you are using Excel as your database, you may want to
contemplate looping through your date range to get the rows the user
wants, then either store in an array or copy the selection to another
worksheet. Use the new worksheet as the base for your pivot table, and
refresh. Be sure to change the pivot table settings to not save data
with table layout so all the updated data is recognized with the
refresh! Note that once you create the new worksheet, and link your
pivot table to it, you only need bring in new data to the sheet and
refresh the pivot table afterwards.
Your other option is to work with your existing pivot table, and to
write a loop statement to work through the "Date" field in the pivot
table. You will want to identify each item date value the user doesn't
want to be seen as false, or clear the selection, and identify each item
date value the user selects as true. You'll have to play with this to
decide what is best for your situation, and design.