Как я могу запретить Access отображать #DELETED после обновления записи?

0

У меня есть база данных доступа 2016, указывающая на бэкэнд MySQL. У меня есть форма с подчиненной формой. Субформа находится в режиме непрерывной формы.

Я сделал шанс на запись подформы, и теперь, когда мои пользователи вносят вклад в создание записи в следующую запись, только что созданная запись отображает #Deleted во всех полях текстовых полей. Нажатие F5 исправляет проблему, но это дополнительный шаг, который я хочу избежать.

Вот код, который я добавил.

Private Sub cboOperationNUM_AfterUpdate()

    If Nz(DLookup("[autoOut]", "[dataDetailOperations]", "[dataDetailOperations_NUM] = " & Me.cboOperationNUM.Value), "") = "" Then
        Exit Sub
    ElseIf DLookup("[autoOut]", "[dataDetailOperations]", "[dataDetailOperations_NUM] = " & Me.cboOperationNUM.Value) = -1 Then
        Me.opOutsourcedPO.Value = 0
    Else
        Me.opOutsourcedPO.Value = Null
    End If

End Sub

Видеозахват проблемы

Если операция "Аутсорсинг" выбирает, она вводит 0 в поле "ПО". Если не выполняется аутсорсинг, он вводит NULL. Я обнаружил, что если поле PO (int (5) в MySQL) установлено в число и затем пустое (NULL в VBA или удалено из формы), когда запись обновляется, она показывает #Deleted до обновления. Если я прокомментирую часть Else моего кода, все, похоже, работает, но оно не освобождает поле PO, если операция не является аутсорсингом. Это функциональность, которую я хотел бы сохранить.

Есть идеи?

  • 0
    Я вижу кучу людей, которые вносят изменения в мой пост. Обычно я избегаю Stack Exchange, потому что каждый раз, когда я публикую посты, меня ругают за нарушение правил. Можете ли вы дать мне знать, что я сделал не так на этот раз? Спасибо!
  • 3
    Вам не нужно спрашивать, проверять редакции, чтобы увидеть, что люди изменили, и узнать их.
Показать ещё 1 комментарий
Теги:
ms-access

1 ответ

0

Поскольку вы заявляете, что обновление формы с помощью F5 решает проблему, вы можете добавить:

Me.Refresh

После

Me.opOutsourcedPO.Value = Null

Это, очевидно, не решает основной проблемы, но может предложить обходное решение.

  • 0
    К сожалению, это не сработало. Кажется, единственный обходной путь сейчас - это удалить Me.opOutsourcedPO.Value = Null.
  • 0
    Вы также можете попробовать Me.Requery
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню