Нужен список значений поля со списком для обновления на основе выбора других полей со списком - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть таблица с именем Devices.Два поля в этой таблице - Марка и Модель.Я создаю форму для добавления новых устройств в базу данных, но у меня есть некоторые проблемы.Я хочу, чтобы пользователь выбирал данные о марке и модели в комбинированных полях.В целях обеспечения целостности данных я хочу, чтобы они были ограничены существующими марками и моделями, уже находящимися в базе данных (с возможностью добавления новой марки / модели при необходимости).

MakeCombo - это просто.Я заполнил это простым запросом (SELECT DISTINCT Devices.Make FROM Devices;), и он отлично работает.То, что я хотел бы, чтобы происходило тогда, основано на выборе марки, обновлении modelCombo до соответствующих значений (пример: пользователь выбирает Dell в качестве марки, а обновления modelCombo содержат все модели Dell в базе данных, кака также с учетом новой модели, в случае устройства Dell, в настоящее время не в БД).Я очень застрял в этом, и не уверен, что делать.

Общий формат таблицы Devices: DeviceID является первичным ключом, Make и Model оба поля в таблице Devices

В прошлом я использовал этот тип VBA для небольших задач / баз данных, но эта база данных имеет несколько сотен записей, и для каждой комбинации марки / модели потребуется слишком много времени для жесткого кода.

Private Sub combo1_Change()
    If combo1 = "op1" Then
        Me.combo2.RowSourceType = "Value List"
        Me.combo2.RowSource = "a; b; c"
    Else
        Me.combo2.RowSourceType = "Value List"
        Me.combo2.RowSource = "default"
    End If
End Sub

1 Ответ

0 голосов
/ 23 сентября 2019

Конечно, я нахожу ответ через несколько минут после публикации ....

Private Sub makeCombo_AfterUpdate()
'enables the modelCombo for data selection
modelCombo.Enabled = True
'updates the modelCombo to reflect the appropriate data in the makeCombo
modelCombo.RowSource = "SELECT DISTINCT Devices.Model FROM Devices WHERE Devices.Make = makeCombo.Value"
modelCombo.Requery

End Sub

Только что сделал это, установил тип источника строки modelCombo в Table / Query, и он работал отлично.Надеюсь, это поможет кому-то еще с той же проблемой!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...