我有一个指向 MySQL 后端的 access 2016 数据库。我有一个带有子表单的表单。子表单处于连续表单 View 中。
我有机会输入子表单,现在当我的用户通过创建记录切换到下一条记录时,刚刚创建的记录在所有文本框字段中显示#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
如果选择外包操作,则会在 PO 字段中输入 0。如果不是外包操作,则输入 NULL。我发现,如果 PO 字段(MySQL 中的 int(5))设置为一个数字,然后设为空白(VBA 中为 NULL 或从表单中删除),则更新记录时会显示 #Deleted,直到刷新。如果我注释掉代码的 Else 部分,一切似乎都能正常工作,但如果操作不是外包,则不会清空 PO 字段。这是我想保留的功能。
有什么想法吗?
最佳答案
既然您声明使用 F5 刷新表单可以解决问题,您可以添加:
Me.Refresh
之后
Me.opOutsourcedPO.Value = Null
这显然不能解决根本问题,但可能提供一种解决方法。
关于mysql - 如何阻止 Access 在记录更新后显示 #DELETED?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48449312/