Соедините две таблицы и сгруппируйте их по столбцам.
SELECT cr.register_id, cr.number, COUNT(*) AS cnt
FROM tbl_cross AS cr
JOIN tbl_register as r ON cr.register_id = r.id
WHERE r.collection_id = 56
GROUP BY register_id, number
HAVING cnt > 1
Вы можете использовать HAVING
для фильтрации недубликатов, подзапрос вам не нужен.
VBA поддерживает Модули Класса. У них есть событие Class_Initialize, которое является конструктором и Class_Terminate, который является деструктором. Можно определить свойства и методы. Я полагаю, что VBA использует подсчет ссылок в течение объектного жизненного цикла. Который является, почему Вы видите много Набора безотносительно = Ничто в том типе кода. В Вашем случае в качестве примера я думаю, что он не пропустит памяти. Но необходимо остерегаться циклических ссылок.
При создании модуля класса в VBA, для конструктора, можно использовать:
Private Sub class_initialize()
....
End Sub
нет никаких деструкторов, так как VBA собран "мусор". Просто удостоверьтесь, что очистили любые циклические ссылки, и необходимо избежать любых возможных утечек памяти.
Это было некоторое время, так как я использовал их, но я не думаю, что можно передать параметры в конструкторов. Я думаю, что это было одной из проблем, с которыми я столкнулся, но я сталкивался с таким количеством проблем того, как работали thse классы и как я ожидал, что они будут работать, что я могу быть misremembering.
Существует Class_Terminate, который почти такой же, как деструктор.