Это не работает, как это. SQL не расширен до WHERE Table.ID IN (26, 27)
, как и следовало ожидать.
Измените функцию VBA, чтобы вместо нее проверить действительные идентификаторы
Public Function IsValidId(ByVal id As Long) As Boolean
IsValidId = id = 26 Or id = 27 'Replace by your implementation
End Function
Затем измените ваш SQL на
SELECT ID, Name FROM Table
WHERE IsValidId(Table.ID)
Другой подход, если вы можете динамически изменять запрос (например, для ComboBox), состоит в том, чтобы создать его следующим образом
Dim sql as String
sql = "SELECT ID, Name FROM Table WHERE Table.ID IN (" & getIDs() & ")"
cbo.RowSource = sql