如何在记录更新后停止Access显示#DELETED?

时间:2018-01-25 18:08:21

标签: mysql vba ms-access

我有一个指向MySQL后端的访问2016数据库。我有一个包含子表单的表单。子表单是连续的表单视图。

我有机会输入子表单,现在当我的用户通过创建记录到下一条记录时,刚刚创建的记录在所有文本框字段中显示#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

Video Capture of the problem

如果选择外包操作,它会在PO字段中输入0。如果不是外包操作,则输入NULL。我发现如果将PO字段(MySQL中的int(5))设置为一个数字然后变为空白(VBA中的NULL或从表单中删除),当记录更新时,它会显示#Deleted直到刷新。如果我注释掉我的代码中的其他部分,一切似乎都有效,但如果操作不是外包的话,它也不会清空PO字段。这是我想保留的功能。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于您声明使用 F5 刷新表单解决了问题,您可以添加:

Me.Refresh

之后

Me.opOutsourcedPO.Value = Null

这显然无法解决根本问题,但可能会提供解决方法。