【发布时间】:2013-01-06 03:08:32
【问题描述】:
我试图弄清楚为什么 Requery 子表单在 2003 年工作时在 Access 2010/2007 中没有显示更改的记录(或新的或已删除的记录)?
如果我关闭/重新打开表单,这些值是否正确但直到那时才正确? 2007/2010 年有什么变化需要额外的步骤吗?
这是多个表单使用的子表单 - 我不会尝试根据主表单上发生的任何事情等来刷新/requrey。 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
【问题讨论】:
-
您是否设置了断点并逐行遍历代码以查看发生了什么?
-
我不确定您所说的“看看发生了什么”是什么意思?我可以单步执行,没有错误等。表单上的网格/表格“光标”移动到屏幕上的正确行,但值仍然显示旧值?在 access 2003 中,屏幕上的值已更新。在 2010 年它没有 - 所以我不确定我是否需要做一些额外的事情等等。
-
将光标放在该代码中允许的第一行:
blnUpdateSwitch = False。使用 F9 设置断点 --- 您将在左侧边缘看到一个红点,并且整行也应以红色突出显示。然后返回表单并单击命令按钮。您的代码将处于中断(调试)模式。使用 F8 逐行执行代码。看看发生了什么。 -
HansUp - 我的道歉 - 我理解逐步执行代码/断点 - 我的问题是“我在寻找什么” - 这意味着代码似乎执行没有错误,控件和基础值不会刷新屏幕..
标签: ms-access ms-access-2010 subform