绑定到断开连接的内存记录集中的窗体不刷新



我有一个连续的表单,在Open事件上,我动态创建一个ADODB.Recordset.

我将此值用于以下属性:

Private Sub Form_Open(Cancel As Integer)
Dim rs As New ADODB.Recordset
...
With rs
    Set .ActiveConnection = Nothing
    .CursorType = adOpenKeyset
    .CursorLocation = adUseClient
    .LockType = adLockPessimistic
    .Open
End With
Me.Recordset = rs
...
End Sub

一切都很好,表单打开,记录集数据正确显示。

按下功能区上的"全部刷新"按钮时会出现问题。然后,记录集的所有记录都将被删除,只剩下一条带有#Name?每个绑定控件上的值。这一定与试图重新查询而无法重新查询有关,因为这是内存中的记录集,但我找不到确切的内容或如何修复。有人能解释我做错了什么以及如何修复吗?

附言:我使用Microsoft ActiveX Data Objects 6.0

我最终解决了这个问题,将Form Property Popup更改为Yes使用窗体的KeyDown事件来拦截F5和Shift-F9击键(将窗体的Key Preview属性设置为Yes)。

最新更新