Мой комбинированный список с именем districtCombo
связан с полем с именем carDistrict
. Чтобы помочь мне сэкономить время при обновлении поля CarDistrict
, я хочу иметь возможность автоматически заполнять поле со списком при вводе пользователем
Я думал об использовании оператора select
в событии districtCombo_Change
, но я не получаю ничего, даже сообщения об ошибке.
Есть ли способ обойти это? Или есть предложения лучше?
Private Sub districtCombo_Change()
Dim Task As String
Task = "SELECT carDistrict FROM tblCars ORDER BY tblCars.districtCombo"
Me.districtCombo.RowSource = Task
End Sub()
Думаю, моя вторая попытка приблизить меня Я полностью отказался от события Change и сконструировал событие Form_Load следующим образом:
Private Sub Form_Load()
Me.RecordSource = "tblCars"
districtCombo.ControlSource = "carDistrict"
districtCombo.RowSourceType = "Table/Query"
districtCombo.RowSource = "SELECT carDistrict FROM tblCars"
End Sub
проблема в том, что в выпадающем списке отображаются все значения, включая повторяющиеся значения и пустые поля. Есть ли способ отфильтровать элементы списка, чтобы отображался только один элемент, состоящий из одной строки?
Я думаю, что все ближе, но я столкнулся с другой проблемой. Если введенное значение отсутствует в списке, я не могу добавить его в таблицу. Есть ли способ? Обновленный код ниже:
Private Sub Form_Load()
Me.RecordSource = "tblCars"
districtCombo.ControlSource = "carDistrict"
districtCombo.RowSourceType = "Table/Query"
districtCombo.RowSource = "SELECT distinct carDistrict FROM tblCars WHERE
carDistrict Is Not null"
End Sub
Private Sub districtCombo_NotInList(NewData As String, Response As Integer)
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tblCars")
rs.AddNew
rs!carDistrict = NewData
rs.Update
End Sub
Private Sub districtCombo_AfterUpdate()
Me.Requery
End Sub
Я получаю сообщение об ошибке в части rs.Update.
И, наконец, вот что я искал:
'Set the Limit to list property of the combobox to No
Private Sub Form_Load()
Me.RecordSource = "tblCars"
districtCombo.ControlSource = "carDistrict"
districtCombo.RowSourceType = "Table/Query"
districtCombo.RowSource = "SELECT distinct carDistrict FROM tblCars WHERE
carDistrict Is Not null"
End Sub
Private Sub districtCombo_AfterUpdate()
Me.Requery
End Sub