Set a global field equal to the current customer ID. Create a relationship between that global and the target table. Your value list will then be the related records.
As an aside, you mentioned using this for portal filtering. If ExecuteSQL is slow, then portal filtering likely will be as well. You might need to reconfigure to use a dedicated relationship instead.
I will have a field (auto-enter calculation that results in YEAR only, as text or number). Then use this field for the value list and for the search field. It will be unique and not include all the months and days as you have.
I also will have a field (auto-enter calculation that results in YEAR_MONTH = yyyy_mm or yyyymm as text), so that I can use it for charts, finds, filters, etc.
Year(mydateField) & "_" & Right("00" & Month(mydateField); 2) // use the "_" or not
This is alpha-sortable, and convenient for sub-summaries where records need to be grouped by months (within years).
Thanks for your input, always appreciated.
Have got this working now using a second TO and a value list based on this, relating back to the main parent record.
(Why didn't I think of that!)