搜索和搜索,无法找到解决方案。我有一个包含许多连续形式子表单的表单。当我更改一个值时,让我们在其中一个子表单上说FIELD_A,我在其他几个子表单上运行计算,然后焦点返回到FIELD_A。但是,在计算过程中会发生对PARENT表单的更新,并且需要进行更新。因此,当我将焦点返回到原始子窗体时,子窗体上的第一个记录具有焦点。然后我需要转到我正在处理的记录。
我尝试了几种选择,但没有任何效果。但是,如果我在代码中的行中设置一个DEBUG断点,它移动到指定的记录,然后物理地从该行运行代码,它就可以了!我已经尝试在那里设置一个等待期无济于事。
以下是代码片段:
Call common.CalculateAllLoadTotals _
(Me, Me.AffiliateID, Me.ClientID, Me.FacilityID, Me.ProposalRevision)
Me.Recordset.FindFirst "[AffiliateID] = '" & Me.AffiliateID & "'" & _
" AND [ClientID] = " & Me.ClientID & _
" AND [FacilityID] = " & Me.FacilityID & _
" AND [ProposalRevision] = " & Me.ProposalRevision & _
" AND [EquipmentID] = " & currItemID
我也试过这个:
dim currRecord as Long
currRecord = Me.CurrentRecord
' >>> REST OF CODE HERE <<<
Call common.CalculateAllLoadTotals _
(Me, Me.AffiliateID, Me.ClientID, Me.FacilityID, Me.ProposalRevision)
Me.Form.Recordset.Move = currRecord
正如我所说,代码工作(任一)如果我用调试暂停它然后继续执行。奇怪。
答案 0 :(得分:0)
我怀疑您正在更新父表单底层的记录集。这会导致父窗体自动重新查询,因此子窗体位置返回到第一条记录。 解决方案是更新父窗体上的控件:
Me.Parent!Controlname = XXXX
答案 1 :(得分:0)
很抱歉,这不是一个完整的答案,但评论很多。 关于你的第一个解决方案 - 我建议你试试Me.Recordset.Requery 在不移动位置的情况下刷新主窗体中的当前记录。
关于你的第二个选项 - 我建议看看书签 - 更新前记住书签,进行一些计算,然后将位置移动到保存的书签。像这样的东西 -
<a href="#" id="button1">Om Fantasylab</a>