Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access Access 2010子表单重新查询不起作用,但在2003年起作用?_Ms Access_Ms Access 2010_Subform - Fatal编程技术网

Ms access Access 2010子表单重新查询不起作用,但在2003年起作用?

Ms access Access 2010子表单重新查询不起作用,但在2003年起作用?,ms-access,ms-access-2010,subform,Ms Access,Ms Access 2010,Subform,我试图弄明白为什么子表单重新查询在2003年运行时,在Access 2010/2007中没有显示更改的记录(或新的或删除的记录) 如果我关闭/重新打开表单,该值是否正确,但直到那时? 2007/2010年是否有需要采取额外措施的变化 这是一个由多个表单使用的子表单-我不会试图根据主表单上发生的任何事情来刷新/请求,等等。 子窗体上有一个按钮,用于进行此调用以向上移动记录(对行重新排序) 数据库是SQL Server 2005,而不是本地访问(如果这有什么区别的话) Private Sub btn

我试图弄明白为什么子表单重新查询在2003年运行时,在Access 2010/2007中没有显示更改的记录(或新的或删除的记录)

如果我关闭/重新打开表单,该值是否正确,但直到那时? 2007/2010年是否有需要采取额外措施的变化

这是一个由多个表单使用的子表单-我不会试图根据主表单上发生的任何事情来刷新/请求,等等。 子窗体上有一个按钮,用于进行此调用以向上移动记录(对行重新排序)

数据库是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

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


另外,您也可以对
Me.Refresh
执行相同的操作,以
Me.Form.Refresh

您是否设置了断点并逐行遍历代码以查看发生了什么?我不确定“查看发生了什么”是什么意思?我可以单步执行,没有错误等。表单上的网格/表格“光标”移动到屏幕上的正确行,但该值仍然显示旧值?在access 2003中,该值在屏幕上更新。在2010年,情况并非如此——因此我不确定是否需要执行其他操作等。看看这是否有帮助:将光标放在代码中允许的第一行:
blnUpdateSwitch=False
。使用F9设置断点---您将在左边空白处看到一个红点,整行也应以红色突出显示。然后返回表单并单击命令按钮。您的代码将处于中断(调试)模式。用F8一次一行地逐步完成代码。然后看看发生了什么。HansUp-我很抱歉-我理解通过代码/断点的步骤-我的问题是“我在寻找什么”-这意味着代码似乎没有错误地执行,控件和底层值不会在屏幕上刷新。。