Я хочу заполнить свой ComboBox в форме доступа, используя VBA на основе данных из другой таблицы.Ранее, чтобы сделать это, я сделал следующее:
- На вкладке «Свойства» -> «Данные» я заполнил поля «Источник строки» и «Тип источника строки» с этой информацией:
Теперь, когда бы я ни щелкнул по раскрывающемуся списку для моего комбинированного списка, он будет заполнять раскрывающийся список всеми именами из таблицы t_people.
Это ограничивало меня, однако, когда данные менялись в столбце имени t_people.Чтобы получить обновленный список, я должен закрыть форму и снова открыть ее, чтобы запрос снова запустился.Я ограничил доступ к этому файлу Access, так что пользователю предоставляется только x количество форм, и он не может закрывать / открывать их или другие.
Мое решение состоит в том, чтобы удалить запрос при загрузке формы, ивместо этого запускайте запрос каждый раз, когда поле со списком получает фокус, событие щелчка или что-то в этом роде.Я сделал это со следующим событием в VBA:
'Run when the "name" combobox gains focus
Private Sub nameCb_GotFocus()
[nameCb].RowSource = "SELECT name FROM t_people"
End Sub
Я установил точки останова, и этот код работает.Однако после этого поле со списком не заполняется.Как я могу заставить комбинированный список заполняться значениями из запроса для каждого фокуса комбинированного списка?