我有一个用于更新项目状态的表格。主要表单用于按名称/类型/状态进行过滤,我对此没有任何问题,并且不认为它会影响子表单上的问题。
我的子窗体是一个数据表,其记录集基于上述过滤器进行了更新。状态是数据表中作为组合框的一列。执行以下命令时遇到问题: 1)在一行中更新一个值 2)尝试对同一行进行第二次更新
如果执行所有三个步骤,则无法更改第二个值(或该值的原始值)。如果我在新行中进行更改,则不会有问题。
我尝试了几种其他方法来解决此问题。
例如,这些似乎都不能解决问题:
Private Sub StatusID_AfterUpdate()
If Me.Dirty Then
Me.Dirty = False
End If
End Sub
此外,这可以保存,但不允许我先编辑另一行而不修改:
Private Sub StatusID_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
End Sub
我解决此问题的唯一方法是添加一个运行Me.Refresh的按钮。但我希望可以自动执行此操作。我想知道问题是否与子窗体上的数据有关。
答案 0 :(得分:0)
因此,键入此内容使我想到了一些东西。我认为我应该离开这个问题,如果它可以帮助任何人。
要解决此问题,我必须使用以下代码:
Private Sub StatusID_AfterUpdate()
Forms!ProjectList.Refresh
End Sub
如果仅放置Me.Refresh,我认为由于子窗体是活动表,因此无法正常工作。这就是该按钮起作用的原因,它在主窗体上。