Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 在MS Access中重新查询后如何保持焦点?_Ms Access_Vba - Fatal编程技术网

Ms access 在MS Access中重新查询后如何保持焦点?

Ms access 在MS Access中重新查询后如何保持焦点?,ms-access,vba,Ms Access,Vba,我在VBA中使用以下代码,以便即使在重新查询后也能将注意力集中在某个记录集上: With Forms!frmMain!frmMainSub strControlName = .Form.ActiveControl.Name lngCurrentPos = .Form.Recordset.AbsolutePosition .Requery .Form.Recordset.AbsolutePosition = lngCurrentPos

我在VBA中使用以下代码,以便即使在重新查询后也能将注意力集中在某个记录集上:

With Forms!frmMain!frmMainSub
        strControlName = .Form.ActiveControl.Name
        lngCurrentPos = .Form.Recordset.AbsolutePosition
        .Requery
        .Form.Recordset.AbsolutePosition = lngCurrentPos
        .Form.Controls(strControlName).SetFocus
    End With
此代码的问题在于,子窗体位于数据表视图中,并且通常按字段排序。由于上面的代码记录了动态集或快照类型记录集对象上的绝对位置,因此无法跟踪已排序的数据表

是否有更好的方法在重新申请表单后将焦点放在特定字段上

编辑:


这个问题不是重复的,因为有关于保持焦点不变的答案。问题是,我的状态不同,而且我希望即使对其中一个字段应用了筛选器也能保持焦点。

可能的重复项您是否确实尝试过在重复项上使用答案中的技巧(使用
.FindFirst
导航回记录)?出了什么问题?我不相信你只是说你想在不同的场景中使用它,它就不是一个复制品。做一些类似
表单的事情!弗曼!frmMainSub.Form.RecordSource.RecordsetClone
不起作用,并给我提供了所需的对象错误,这只是因为
RecordSource
不应该在其中。这只是
表单!弗曼!frmMainSub.Form.RecordsetClone