访问2010子表单重新查询不起作用,但在2003年?

时间:2013-01-22 19:08:50

标签: ms-access ms-access-2010 subform

我想弄清楚为什么子窗体Requery在Access 2010/2007中没有显示已更改的记录(或新的或已删除的),当它在2003年工作时?

如果我关闭/重新打开表单,那么这些值是正确的,但直到那时才是? 2007/2010年有什么变化需要额外的步骤吗?

这是多个表单使用的子表单 - 我并不是基于主表单上发生的任何事情来尝试刷新/请求。 SUBform上有一个按钮,可以进行此调用以向上移动记录(重新排序行);

数据库是SQL Server 2005,如果有任何区别,则不是本地访问。

Private Sub btnUp_Click()
On Error GoTo Error_Handler
Dim blnUpdateSwitch As Boolean
    blnUpdateSwitch = False
Dim blnRemoval As Boolean
    blnRemoval = False

' Commit any outstanding edits before moving the records.

Me.Refresh

Dim intCurrentRecord As Integer
intCurrentRecord = Me.CurrentRecord
If Me.Recordset!blnSwitch = True Then blnUpdateSwitch = True
If intCurrentRecord >= 2 Then
    Me.Recordset.Edit
    Me.Recordset!lngSequence = intCurrentRecord - 1
    Me.Recordset.Update

    Me.Recordset.MovePrevious

    Me.Recordset.Edit
    Me.Recordset!lngSequence = intCurrentRecord
    Me.Recordset.Update

    Me.Recordset.Requery
    If blnUpdateSwitch Then CalculateSwitchOrder

    Me.Recordset.AbsolutePosition = intCurrentRecord - 2

    Me.Requery

End If

Exit Sub

Error_Handler:

End Sub

1 个答案:

答案 0 :(得分:0)

尝试将Me.Requery替换为Me.Form.Requery

此外,您可以对Me.RefreshMe.Form.Refresh

执行相同的操作