ник: Анатолий (Киев)
Всё не так!
Set rs = db.OpenRecordset("Клиенты")
Здесь вы открываете rs = на таблице "Клиенты"
Set rs = Me.RecordsetClone
И тут же заменяете данные записями из источника формы, хотя по фразе "а оно точно
есть в таблице клиенты" - всё-таки в "клиенты". Видимо эта строчка лишняя.
rs.FindFirst "[id] = " & Me![НазваниеКомпании] ругается на id, что нет такого поля...
Если предыдущую строчку отмените, то, видимо, поле [id] будет, но какой тип поля Me![НазваниеКомпании]? Если текстовый, то строка критерия - неправильная, особенно, если [id] - числовое.
Me.Bookmark = Me.RecordsetClone.Bookmark
Какой смысл в этой строчке? Вы ищете запись в другом наборе, не имеющем отношения к источнику формы.
Объясните смысл вашей задачи.
Me![НазваниеКомпании] - поле или поле со списком?
И еще:
1. Если таблица "Клиенты" - родная (не прилинкованная), то Set rs = db.OpenRecordset("Клиенты") откроет Recordset, не поддерживающий методы Find. Нужно явно указывать его тип.
2. После выполнения поиска всегда проверяйте св-во NoMatch.
3. Вместо DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 можно с успехом применить Me.Refresh или Me.Dirty = False.