Существуют две возможные библиотеки интерфейса данных в Access, DAO (собственная библиотека) и ADO, и обе имеют объекты Recordset.Только DAO имеет метод FindFirst - в ADO это Find.Как указывает @Remou в своем ответе, вы можете указать библиотеку и избежать двусмысленности.
В большинстве случаев очень мало причин предполагать использование чего-либо, кроме DAO, в качестве интерфейса по умолчанию в приложении Access (MDB / ACCDB).Для ADP, конечно, ADO является единственным выбором вообще (поскольку ADP без Jet).
В случае вашего кода вы явно используете DAO (так как вы используете переменную базы данных, котораяне существует в ADO - вместо этого вы используете объекты подключения), поэтому, возможно, у вас либо неправильная ссылка (ADO), либо ADO и DAO, и они в порядке с ADO вначале.
InВ общем, почти никогда не бывает случаев, когда уместно иметь обе ссылки, по моему мнению - это только усложняет ситуацию.ADO можно использовать без ссылки (DAO тоже может быть), но это связано со слабой типизацией переменных вашего объекта и потерей Intellisense на них.Обычная практика состоит в том, чтобы использовать в основном DAO и, возможно, случайное погружение в ADO для вещей, которых DAO не хватает (или делает менее эффективно, чем ADO).Для таких случайных нужд ADO вы можете использовать объект CurrentProject.Connection и вводить переменные в качестве объектов и полностью обходиться без ссылки на ADO.