Есть два способа справиться с этим.
1 - Не использовать SELECT *
.Всегда указывайте нужные вам столбцы.(обычно столбцы с одинаковыми именами находятся в столбцах соединения, которые обычно содержат одни и те же данные) Если вам действительно нужен один и тот же именованный столбец дважды, вы можете использовать их псевдонимы, чтобы было легко предсказать, каким будет имя.
Select TableA.FieldA as TableA_FieldA,
TableB.FieldA as TableB_FieldA...
тогда вы можете сделать
recJoined.FindFirst "TableA_FieldA='100'"
2 - Если вам нужно использовать SELECT *
Вы можете узнать, какие имена полей сначала в пустом месте, а затем использовать любое имязаключается в том, что ядро базы данных присвоило его, а затем использует эти результаты
Dim fld As DAO.Field
For Each fld In recJoined.Fields
Debug.Print fld.Name
Next fld
С MS Access или SQL Server это будет производить что-то вроде
TableA.FieldA
FieldB
...
TableB.FieldA
FieldC
Что означает, что вы можете сделать это
recJoined.FindFirst "TableA.FieldA='100'"