Получение формы MS-Access для сохранения невидимых полей со списком в виде нулевого или нулевого значения в запросе и таблице - PullRequest
0 голосов
/ 28 января 2020

Я не знаю, что то, как я построил свою форму, обязательно является лучшим способом, которым я могу это сделать, но это был способ, которым я мог заставить ее работать, хотя бы частично. Я создал форму в MS-Access 2007, которая использует VBA, чтобы скрыть или сделать доступными определенные поля со списком. Первый вариант и тот, на котором основывается остальная часть формы, - это вариант «да / нет», заключающийся в том, что клиенту требуются внешние услуги для его работы или нет. Как только это выбрано, пользователь может затем выбрать из внешних сервисных опций (которые являются комбинированными, видимыми или нет на основе первого выбора). Итак, вот в чем проблема: у меня написан код, так что если пользователь выбирает нет в самом первом поле, остальные поля становятся невидимыми. Однако если пользователь выбирает «да», он должен затем выбрать значения, снова «да» или «нет», чтобы сохранить или удалить другие параметры для оставшейся части формы. То, что я хочу сделать, это сделать так, чтобы, когда пользователь возвращается в форму, какие решения он сделал, все еще там. Поэтому, если они выберут «нет», то форма будет в основном пустой, и если бы они сначала ответили «да», то был бы доступен этот ответ вместе с другими вариантами, которые они сделали. затем заявление, чтобы сделать коробки либо видимыми, либо нет.

Private Sub Combo36_AfterUpdate()
    If Combo36.Value = "No" Then Me.Combo18.Visible = False
    If Combo36.Value = "Yes" Then Me.Combo18.Visible = True
    If Combo36.Value = "No" Then Me.Combo20.Visible = False
    If Combo36.Value = "Yes" Then Me.Combo20.Visible = True
End Sub

Очевидно, что у меня нет опыта доступа к нему, и я спотыкаюсь о нем. Прошу прощения, если что-то из того, что я сказал выше, сбивает с толку. Если нужна ясность, пожалуйста, дайте мне знать.

Ответы [ 2 ]

1 голос
/ 28 января 2020

Хорошо, для начала «Flase» следует обновить до «False».

Вместо сохранения, а затем повторного заполнения выбранных значений может быть проще повернуть видимость всей формы на true / false, основываясь на выборе, который сохранит последние значения, выбранные пользователем.

Для показ видимости элементов управления попробуйте:

Private Sub Combo36_Change()
    If Me.Combo36.Value = "No" Then
        Me.Combo18.Visible = False
        Me.Combo20.Visible = False
    ElseIf Me.Combo36.Value = "Yes" Then
        Me.Combo18.Visible = True
        Me.Combo20.Visible = True
    End If
End Sub
0 голосов
/ 03 февраля 2020

Ваш исходный код в порядке, чтобы форма могла сохранять варианты выбора, а затем скопировать код, который вы имеете под событием Combo36_AfterUpdate (), в событие Private Sub Form_Current (). Это сделает это.

...