Краткая форма: в MS Access VBA (2010), я хотел бы знать, какой элемент управления собирается получить фокус во время события LostFocus.Найдите следующий элемент управления в событии LostFocus?
Длинная форма: В форме у меня есть подчиненная форма, содержащая список фруктов, цифр и комментариев. В форме, я показываю, что подчиненной в списке для ранее известного набора фруктов:
Fruit Count Comment
Apples
Apples
Apples
Oranges
Bananas
Bananas
Пользователь вводит счетчики для каждого плода:
Fruit Count Comment
Apples 4
Apples 3
Apples 2
Oranges 5
Bananas 2
Bananas -1 (= rotten)
Теперь мне нужно вычислить средние значения, как это:
Fruit Count Comment
Apples 4
Apples 3
Apples 2
Apples 3 Average
Oranges 5
Bananas 2
Bananas -1
Bananas -1 Average
У меня уже есть Sub, который делает это, но слишком медленно запускать его после каждого входа. Это также путает пользователя, что неожиданно появляются некоторые средние значения среди ее входов. Поэтому я хочу запустить его только после того, как пользователь завершит ввод значений.
Естественное место ИМО для выполнения этого среднего расчета будет событием LostFocus контроля счетчика, но только если фокус изменится на что-то еще, чем на другое управление счетчиком. Как я могу это сделать (screen.ActiveControl не помогает, потому что во время LostFocus это еще старый элемент управления)?
Спасибо за ваш ответ. Это связано с написанием обработчиков OnEnter для всех остальных элементов управления. Я могу сделать то же самое с GetFocus на всех других элементах управления и LostFocus в подчиненной форме. Я искал способ сделать это, не написав 8 дополнительных обработчиков событий, но кажется, что это невозможно – Batox
Неужели невозможно сделать то, что описывает @batox? Укажите имя нового элемента управления/следующего активного элемента управления в событии LostFocus (скоро будет) PreviousControl? В принятом ответе не содержится окончательного определения того, возможно ли это. –