OnCurrent событие срабатывает при переходе от первой записи к последней, но не от последней к первой

#ms-access #vba #ms-access-2013

#ms-access #vba #ms-access-2013

Вопрос:

У меня есть приведенный ниже код, который должен включать и отключать поле суммы в основной форме и подчиненные формы покупок и продаж на основе значения в поле тип транзакции. Теперь он отлично работает при прямом запуске. Т.е. как только форма загружается, и я прокручиваю от первой записи к последней. Но как только я нажимаю на последнюю запись и прокручиваю записи от начала до конца, поле суммы остается отключенным (т. Е. Код больше не выполняется), и мне приходится перезагружать форму. Есть ли способ, которым я могу решить эту проблему? Я хотел бы, чтобы пользователь получал ответ в реальном времени в отношении включения и отключения.

Пожалуйста, найдите изображение формы на случай, если это поможет визуализировать сценарий.

введите описание изображения здесь

 Private Sub Form_Current()

    Select Case Me.transactionType.Value
    Case 1
        Me.PurchaseOrderDetails_subform.Enabled = False
        Me.SalesOrderDetails_subform.Enabled = False

    Case 4
        Me.Amount.Enabled = False
        Me.PurchaseOrderDetails_subform.Enabled = False
        Me.SalesOrderDetails_subform.Enabled = True

    Case 2
        Me.Amount.Enabled = False
        Me.PurchaseOrderDetails_subform.Enabled = True
        Me.SalesOrderDetails_subform.Enabled = False

    Case 3
        Me.Amount.Enabled = False
        Me.PurchaseOrderDetails_subform.Enabled = False
        Me.SalesOrderDetails_subform.Enabled = True
    End Select
End Sub
 

Я буду искренне признателен вам за помощь.

Комментарии:

1. Если вы говорите «прокрутка», что именно вы имеете в виду? Переход к первой записи? Итак, на панели навигации отображается «1 из 6»?

2. @Andre Да, под прокруткой я подразумеваю переход от одной записи к следующей либо с 1 по 6, либо с 6 по 1. Показанный экран предназначен только для отображения формы, на которую я ссылаюсь.

Ответ №1:

Вы никогда не включаете это поле, поэтому вам может потребоваться это изменение:

 Select Case Me.transactionType.Value
    Case 1
        Me.Amount.Enabled = True
        Me.PurchaseOrderDetails_subform.Enabled = False
        Me.SalesOrderDetails_subform.Enabled = False
 

Комментарии:

1. Большое спасибо, Густав; это сработало. Изначально я думал, что контроль количества всегда будет выполняться автоматически, поскольку он выполняется при загрузке формы. Теперь я осознаю свою ошибку. Спасибо