Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求助连续窗体Requery后的纪录(控件?)定位

浪淘沙  发表于:2012-02-17 15:42:36  
复制

求助连续窗体Requery后的纪录(控件?)定位

 

 

    如题,我有一个连续窗体加载的是经多表关系查询后已锁定不能被编辑的数据集,其中有一“是/否”Boolen值控件加了鼠标操作事件,对表进行操作,勾选项的值也改变,但窗体不会自动更新,需要requery后方可重新加载。现在可以让被操作的那条数据在Requery 后获得焦点。

 

问题:在数据数量不超过满窗的时候(即不需要用到竖向滚动条查看数据),被点击的那条数据的"勾选"控件Requery后还是在鼠标的位置上。  但是当数据超过一屏后,会跑到窗体的最下方。

      虽然依然被获得焦点标注,比较好找,但总是不如原位显示完美。

 

      我试了一下通过取得原控件位置的坐标值,再对重新新获得焦点的控件用Move事件,结果不行报错了。

      细想想和控件也没关系,应该是和连续窗体的记录位置有关。

        
     

求助: 关于连续窗体的记录显示定位有没有人研究过? 我想解决这个问题不知可行否?望高人指点

          

 

Top
纵云梯 发表于:2012-02-18 03:39:18
浪淘沙 发表于:2012-02-18 20:27:28

纵云梯你好,看了您的示例,我目前做到的也是这个状态,可以在Requery后找到原纪录。我说的是后面的数据量多的时候出现的跳屏的情况,上面描述的很详细,可能还是不直观,正好借你的例子加大了数据量来演示一下,我加了一个勾选控件,点击后也调用了你的定位记录函数。在操作第一屏之外的记录时,点击勾选控件后,该记录会跳到窗体的最下方被选中,给操作者的第一感觉会是“我刚才勾选的数据怎么不见了?”,或者怀疑刚才有没有操作成功,所以我希望做到该记录的勾选项当Requery后还在鼠标点击的位置上。

 

点击下载此附件

 



浪淘沙 发表于:2012-02-19 10:25:59

我现在有个思路,取得该记录前后两次的坐标值差,用函数操作屏幕滚动条的办法滚动这段距离实现,以达到消除该问题。

请问在VBA中如何操作滚动条,谁有这方面的应用案例?



浪淘沙 发表于:2012-02-19 12:27:36

查了一下,access VBA 中好像不支持滚动条对象,只支持到窗体的滚动条属性设置。等有空再去API中找找滚动条的信息发送机制看看。



总记录:4篇  页次:1/1 9 1 :