Если имена таблиц известны , вы можете создать запрос, например:
SELECT 'Lesson1' AS table_name, slide_id, name, ... FROM Lesson1
UNION ALL SELECT 'Lesson2', slide_id, name, ... FROM Lesson2
UNION ALL SELECT 'Lesson3', slide_id, name, ... FROM Lesson3
UNION ALL SELECT 'Lesson4', slide_id, name, ... FROM Lesson4
UNION ALL SELECT 'Lesson5', slide_id, name, ... FROM Lesson5
Курсоры нужны только в том случае, если количество таблиц постоянно меняется. Если нет, это должно сработать.
Подсказка: чтобы сгенерировать начальный запрос, вставьте имена таблиц в Excel и используйте формулу в следующей ячейке для создания оператора этой таблицы "UNION ALL". Затем скопируйте и вставьте обратно в Access. (Или создайте его динамически с помощью курсора, но копировать / вставить и быструю формулу легко, и вы можете сохранить файл Excel на тот случай, если вам нужно будет добавить таблицы оптом, изменить выбранные столбцы и т. Д.)
И, очевидно, конечное решение должно заключаться в консолидации таблиц, если это возможно, и добавлении поля дискриминатора при запросах. Черт возьми, если вам нужно, проще поддерживать сотни запросов, каждый из которых извлекает строки по одному уроку (опять же, Excel может быть удобным инструментом пакетного обновления), чем сотни таблиц уроков, которые должны иметь идентичную структуру.