Office中国论坛/Access中国论坛

标题: 如何让列表框得到值,并且能用“↑”,“↓”进行选择操作 [打印本页]

作者: 简    时间: 2010-2-23 22:09
标题: 如何让列表框得到值,并且能用“↑”,“↓”进行选择操作
本帖最后由 简 于 2010-2-23 22:15 编辑

如附件所示,我有两个问题想请教:

1)我采用了分页的方式,我希望当我输完每一页最后一个控件的数据后,回车键或者Tab键就直接跳到列表框上的下一个值上;

比如我在第一页输入数据时,此时列表框的值为1;当我输入完性别后,光标就跳在列表框上,并且列表框的值为2,显示第二页的内容;
当我输入完第二页的学历数据后,光标就又跳在列表框上,这时列表框的值为3,显示第三页的内容。

2)我也希望可以通过键盘上的“↑”,“↓”上下键进行选择,在子窗体里自动显示相对应的页。

比如通过“↑”,“↓”列表框值为1,显示第四页的内容,列表框值为2,则显示第三页的内容。
作者: 简    时间: 2010-2-24 22:53
这个问题没解决,不能沉了,自已顶哈~~~
作者: 王老五    时间: 2010-2-25 08:03
学习一下
作者: 简    时间: 2010-2-27 16:34
这个帖子,也麻烦高手帮我看看。
作者: todaynew    时间: 2010-2-27 17:09
可参见《图片幻灯》一文中,列表框选定记录移动的处理方式。
作者: todaynew    时间: 2010-2-27 17:37
本帖最后由 todaynew 于 2010-2-27 17:39 编辑

[attach]41580[/attach]

用回车键后跳入下一页。

不过对分页显示的问题不太熟悉,如何能跳完整的一页不太会,你自己琢磨一下。

Private Sub lb0_AfterUpdate()
    Me.sub0.SetFocus
    Me.sub0.Form.GoToPage Me.lb0.Value
End Sub


Private Sub txtbK1_AfterUpdate()
Me.Parent.lb0.Value = Me.Parent.lb0.Column(0, 3)
End Sub

Private Sub txtsH2_AfterUpdate()
Me.Parent.lb0.Value = Me.Parent.lb0.Column(0, 1)
End Sub

Private Sub txtsK_AfterUpdate()
Me.Parent.lb0.Value = Me.Parent.lb0.Column(0, 2)
End Sub
作者: goto2008    时间: 2010-2-27 17:44
学习
作者: 简    时间: 2010-2-27 17:53
多谢todaynew ,在你的代码基础改动了一下,就符合了我想要的效果。
原来都在Parent上,今天第一次用它,收获不小。

改动后的代码如下:

Private Sub txtbK1_AfterUpdate()
   Me.Parent.lb0.Value = 3
   Me.Parent.sub0.SetFocus
   Me.Parent.sub0.Form.GoToPage Me.Parent.lb0.Value
End Sub

Private Sub txtsH2_AfterUpdate()
   Me.Parent.lb0.Value = 4
   Me.Parent.sub0.SetFocus
   Me.Parent.sub0.Form.GoToPage Me.Parent.lb0.Value

End Sub

Private Sub txtsK_AfterUpdate()
   Me.Parent.lb0.Value = 2
   Me.Parent.sub0.SetFocus
   Me.Parent.sub0.Form.GoToPage Me.Parent.lb0.Value
End Sub
作者: 风啸啸    时间: 2010-2-27 18:13
学习。
作者: todaynew    时间: 2010-2-27 18:44
本帖最后由 todaynew 于 2010-2-27 19:12 编辑

还是用Me.Parent.lb0.Value = Me.Parent.lb0.Column(1, 3),好一些。这样可以看到列表框内的移动效果。另外用了
Me.Parent.sub0.Form.GoToPage Me.Parent.lb0.Value这句,那么
Me.Parent.sub0.SetFocus这句是多余的。

关于上下移动键的问题,可以用滚轮方式解决,具体实现方法可参见《滚轮妙用》一文。


此外,今天也向你学习到了列表框类型为值列表情况下,数据分列的办法。谢谢!
作者: 简    时间: 2010-2-27 20:48
谢谢todaynew,跟你交流,我也学到了很多东西。
作者: t小宝    时间: 2010-2-27 21:38
也在你的例子上改了一下:
作者: 简    时间: 2010-2-27 23:23
咦,这个方法也好。

谢谢t小宝,今天真是太有收获了,好高兴。
作者: malee189    时间: 2010-3-7 10:01
学习。
作者: 简    时间: 2010-3-7 13:58
我想再请教一下:
在t小宝上传的例子中,是每个控件的得到焦点事件中都有MyGoToPage(i)这段代码,如果控件少还好说,如果控件很多,近50个,挨个挨个的在控件的得到焦点事件中写这段代码,似乎太麻烦了,我就想,能不能采用循环或者更好的方式,来执行控件得到焦点后的MyGoToPage(i)代码呢?
作者: t小宝    时间: 2010-3-7 16:54
不需要 挨个挨个的在控件的得到焦点事件中写代码, 每页的控件的获得焦点事件的代码总是一样的,在设计视图中全选单独一页上需要设置的控件,然后在事件过程中输入“=MyGoToPage(i)”即可,每页只要输入一次而已。
其实并不须要使用每个控件的获得焦点事件,每页只要两个就够了,就是每页的TAB顺序的第一和最后一个控件!
作者: 简    时间: 2010-3-7 21:14
谢谢小宝,原来是这样。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3