我对Access Form Requery方法的工作不一致有问题。
我有两种表格。第一个表单是用户的Data_Entry
表单。第二种形式是Dashboard
显示器,用于排列和格式化来自第一窗体的重要数据。在Data_Entry
表单上,用户可以按下一个按钮来强制Data_Entry
和Dashboard
窗体上的Requery事件。这是非常简单的代码:
Private Sub Button_Update_Click()
Form_Data_Entry.Requery
Form_Dashboard.Requery
End Sub
在Dashboard
表单中,我还有一个计时器事件,每60秒触发一次:
Private Sub Form_Timer()
Me.Requery
End Sub
大约50%的时间,这些都如预期的工作。大约有45%的时间,Data_Entry
表单上的update按钮将重新查询自己,但不会对仪表板做任何事情;然而,单击Dashboard
并按下F5将强制进行重查询,定时器事件也是如此。其余5%的时间内,更新按钮、F5或计时器都不会重新查询Dashboard
。
在100%的时间,更新按钮将请求Data_Entry
表单没有问题。
如果我关闭Dashboard
并重新打开它,它将按照预期的那样再次工作。一段时间。有时它会持续几个小时,没有问题,其他时间只有15分钟。
我不知道是什么导致了这种不一致的行为。这似乎不是VBA的问题。这是访问源代码本身中的一个更深层次的问题,还是我在其他地方遗漏了一些模糊的东西?
发布于 2018-11-21 20:39:58
我设法解决了这个问题,但我仍然不知道是什么原因造成的。我发现,无论是从VBA代码打开表单,还是从Access Macro打开表单,仍然会出现同样的问题,但关闭一次表单并重新打开它将使问题在会话期间消失。因此,我修改了按钮的代码,以打开显示表单,首先打开表单,然后关闭它,然后重新打开它。问题解决了。
Private Sub Button_DisplayName_Click()
DoCmd.OpenForm “FORM_NAME”
DoCmd.Close acForm, “FORM_NAME”, acSaveNo
DoCmd.OpenForm “FORM_NAME”
End Sub
发布于 2021-03-16 18:42:38
这个bug也有类似的问题。重新分配记录是什么最终对我有效,奇怪,但它似乎一贯地清除在我的情况下的这个小故障。
rs = Me.Form.RecordSource
Me.Form.RecordSource = rs
Me.Requery
https://stackoverflow.com/questions/52526837
复制相似问题