У меня есть форма Access 2010, в которой есть ComboBox cmbSubTopic
, в котором перечислены два столбца (SubTopicID
и SubTopic
). Поле со списком привязано к полю, содержащему SubTopicID
. Столбец SubTopicID
скрыт, он показывает только SubTopic
. Когда пользователь выбирает SubTopic
из выпадающего списка, соответствующий SubTopicID
хранится в таблице. Я написал некоторый код VBA для события on load формы для поиска SubTopicID
в таблице, и в ComboBox выбран соответствующий SubTopic
. Мой текущий код-то вроде этого:VBA: Как выбрать элемент из ComboBox
Set rsST = dbs.OpenRecordset(strSqlst)
For i = 0 To Me.cmbSubTopic.ListCount - 1
If Me.cmbSubTopic.Column(0, i) = rsST.Fields("SubTopicID").Value Then
Me.cmbSubTopic.SetFocus
Me.cmbSubTopic.Selected(i) = True
Exit For
End If
Next i
Это дает ошибку говоря:
Введенный текст не является элементом списка
Я также попытался с помощью этого :
Me.cmbSubTopic = Me.cmbSubTopic.Selected(i)
Это выбирает элемент в ComboBox, но также записывает значение я в поле ID
таблицы, которую я не хочу.
Как правило, вам нечего делать для combobox, имеющего источник управления, поскольку его значение равно значению поля underlyng table. – jacouh
Есть ли способ заблокировать вставку данных в таблицу в событии OnLoad формы, а затем разрешить вставку в событие AfterUpdate из выпадающего списка. – ksagar