ОК нашел решение для этого сам - мне это не особо нравится (*), но оно работает, поэтому я рассматриваю его как временное решение, пока кто-то другой не предоставит решение, использующее королевский маршрут (установкакаким-то образом заставить это иметь желаемый эффект).
Я проверил сайт msdn и обнаружил, что можно также использовать самоопределяемую функцию для заполнения списка списков.Легкой частью этого является спецификация того факта, что Access должен будет использовать эту функцию: просто введите имя функции в строке свойства Source Type поля со списком, просто простое имя функции, без = перед или ()за этим.
Теперь для менее легкой части - MS требует определенного формата для функции и определенного контента.Мой выглядит следующим образом:
Private Function customFuncName(fld As Control, id As Variant, row As Variant, col As Variant, code As Variant) As Variant
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset(... new query ...)
Select Case code
Case acLBInitialize
customFuncName = True
Case acLBOpen
customFuncName = 1
Case acLBGetRowCount
customFuncName = rs.RecordCount
Case acLBGetColumnWidth
customFuncName = -1
Case acLBGetValue
customFuncName = rs.GetRows(rs.RecordCount)(col, row)
End Select
End Function
См. msdn.microsoft.com свойство rowSourceType и ссылку аргументы кода конкретной функции на нем.
(*) из-за очевидных накладных расходов на набор записей, приводящих к падению производительности - но так как список, который я показываю, не более 40 строк, он отлично работает для меня