ник: Анатолий (Киев)
Посмотрите...
Несколько советов:
1. У вас в заголовках модулей отсутствует Option Explicit, а это значит, что в настройках VBA не указано обязательное объявление переменных. Настоятельно рекомендую установить этот флажок, а в заголовке существующих модулей укажите Option Explicit.
2. Добавлять запись лучше не запросом INSERT INTO...VALUES..., а открыть Recordset и добавить туда. Меньше мороки и значение счетчика можно получить сразу после AddNew.
3. Третий аргумент DoCmd.OpenForm - условие отбора, а не имя сохраненного фильтра (это по другому вашему вопросу). После выполнения п.2 можно указать критерий при открытии формы. Также DoCmd.OpenForm умеет открывать форму на добавление записей и можно нового пациента вносить прямо в эту форму.
4. В источниках строк списков на форме допускается синтаксис =Form![Поле] или просто =[Поле].
5. Созданный вами код впечатляет! Не пожалейте времени на чтение умных книжек.
ЗЫ. А вы не перемудрили с фильтром по инициалам?