Обновление ControlSource для WebBrowserControl в Access устанавливает для некоторых полей со списком значение NULL. - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть база данных Access 2016, в которой хранится очень большой список деталей. Помимо прочего, в форме пользователь может выбрать параметры для пометки детали как на складе.

Screenshot of combo box options

Здесь у меня есть 3 поля со списком. Первый позволяет пользователю выбрать партию - это не влияет на выбор детали, он будет использоваться для записи, откуда пришла деталь. Вторая часть категории. Обновление запускает refre sh для типа детали, чтобы отфильтровать базу данных для этой указанной c категории.

Обновление третьего поля со списком вызывает WebBrowserControl для изменения его SourceControl для отображения изображения этой детали. (Есть десятки тысяч потенциальных частей - я не хочу упаковывать их изображения с БД, и миниатюры доступны в Интернете)

Это работает, но странно то, что при этом сбрасывается 2-й и третье поле со списком, равным нулю. Это как-то запутало меня, когда я перенес эти данные в базу данных позже. Я не могу понять, почему. Вот код AfterUpdate для cb 2 & 3:

Private Sub ChooseCatName_AfterUpdate()
    Me.ChoosePartType = ""
    Me.ChoosePartType.Requery
    Me.ChoosePartNum = ""
    Me.wb_partImg.Visible = False
End Sub

Private Sub ChoosePartType_AfterUpdate()
    imgUrl = getImgUrl(Me.ChoosePartType)
    If imgUrl = "" Then
        Me.wb_partImg.Visible = False
        Exit Sub
    End If
    imgUrl = imgUrl & "/85x85p." & Right(imgUrl, 3)
    Me.wb_partImg.ControlSource = "=""" & imgUrl & """"
    Me.wb_partImg.Visible = True
End Sub

Примечание: getImgUrl просто возвращает строку - URL-адрес, основанный на номере детали

Итак, почему ChooseCatName и ChoosePartType изменится на null как только wb_partImg.ControlSource изменяется ??

...