设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4192|回复: 11
打印 上一主题 下一主题

[窗体] 为什么我的组合框未移动焦点时,下拉列表会自动收回?

[复制链接]
跳转到指定楼层
1#
发表于 2010-10-12 14:53:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xryacc2 于 2010-10-12 15:57 编辑

[img]如图,在子窗体的组合框“产品编号”中每次输入第一个字符时,其下拉列表先是打开了一下,继而迅速收回,继续输入才又会打开下拉列表,为了解决问题,
(1)我删除了主窗体和子窗体及其所有控件的代码,只保留在控件的击键事件中的代码:me.cobcpbh.dropdown,但仍然有此现象;
(2)于是我考虑到可能是设计窗体和控件引起的问题,就把组合框的“自动展开”设为“否”,但仍然有此现象;
(3)我仔细观察了一下,发现好像是当输入第一个字符后,子表中输入行下新增加了一个空行,也就是在这增加一个空行的这个动作后迅速收回的,继续在该字段的该行输入字符因没有了增加空行的行为,故才又可以展开下拉列表;
(4)但我重新建了一个mdb,模仿此窗体,却没有这个问题出现,因为我的文件是用2000版建立的,却是以2003版在使用,又以为是版本的问题,就又在2000版的文件中建了相似的窗体,仍然没有出现这种问题
---我真是没法了,在此求助,望哪位高人指点迷津,万谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-10-12 15:40:06 | 只看该作者
删除击键事件,用更新后事件替代之。
3#
 楼主| 发表于 2010-10-12 15:50:03 | 只看该作者
本帖最后由 xryacc2 于 2010-10-12 15:53 编辑

试了不行啊,而且我要的就是在用户一边输入字符、系统一边在下拉列表中匹配相似的编号的效果,这样用户用箭头键选中想要的编号,进而按一下ENTER键就可以选定想要的编号。大家可以把动画图片保存到本地电脑中,以更好观察,上传的这个图片在识途论坛里显示有拖尾现象,且显示速度慢。谢谢大家。
4#
发表于 2010-10-12 16:44:28 | 只看该作者
本帖最后由 todaynew 于 2010-10-12 16:47 编辑

取消强制下拉语句me.cobcpbh.dropdown,或将该语句放在更新后事件中。
5#
 楼主| 发表于 2010-10-12 17:02:03 | 只看该作者
都试了,编写代码既不是问题出现的原因,也可能难以解决问题,我的数据源是可以编写的一个查询(存储表头数据的主表和存储明细数据的子表组成的一个选择查询[一对多关系,可编写]),可能与这个数据源有关系,但就是非常奇怪,应该就是在ACCESS自动增加空行的行为中触发收回行为的,但另外试制作了一个窗体,把数据源改为表(而非查询),却不存在这样的问题。但是我编写的软件程序不可能更改成单一的表为数据源啊,真郁闷,这问题扰了我一天一夜,一直研究不出解决的办法。唉。
6#
 楼主| 发表于 2010-10-12 18:54:53 | 只看该作者
又是版本问题,重建一个2003版的,把原2000版的窗体导入时,还是出问题,另建一个窗体(2003)就不会出现这种问题,再把OFFICE2003卸掉,重装2000版时也无这种问题(原文件是用2000版建立的),
关于版本的问题,在条件格式中,假定用户未装OFFICE,如果只安装access2003组件,则这种2000版本的文件的含有条件格式的资料表中如果有较多条记录,则会闪烁不停,但装了OFFICE2003时(不光是ACCESS2003组件)又不会闪,但如果用户未安装OFFICE情况下,如果单装access2002组件则又不闪,微软真折腾人!
------------以上经验,同大家分享。
7#
 楼主| 发表于 2010-10-12 19:14:44 | 只看该作者
看下图,在2000版环境中使用2000版文件,则不会出现击键第一字符就收拢下拉列表的现象,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
 楼主| 发表于 2010-10-12 19:37:03 | 只看该作者
本帖最后由 xryacc2 于 2010-10-12 19:38 编辑

可是最终的问题是,当我把原来的2000版的文件转换成2002-2003后,问题同样存在,看来,如果要在2003环境中用,只能重新建一个mdb2003文件了,而且原来的窗体等都不能导入或复制,唉,都研究2天2夜了,不搞它了,让它有这个问题算了。
9#
发表于 2010-10-12 22:36:03 | 只看该作者
改成"更改"事件试一下:将“更改”属性设为:=cbocpbh.Dropdown
10#
 楼主| 发表于 2010-10-12 23:09:47 | 只看该作者
把击键代码取消,用下面的代码后,问题依旧。
Private Sub cbocpbh_Change()
Me.cbocpbh.Dropdown
End Sub
'-----------------------
另外,如果不在击键事件中写代码,则如何用KeyAscii,我的原代码是:
Private Sub cbocpbh_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
       Case 8, 45, 48 To 57, 65 To 90, 97 To 122 ', 127  '如果是中文,则不弹出。另外127键无效
            Me.cbocpbh.Dropdown
       Case 32 To 44, 46 To 47, 58 To 64, 91 To 96, 123 To 126  '这行选项对于在中文输入模式下是无效的,因为对应的中文不是ascii码
            KeyAscii = 0
End Select
End Sub
如果不在击键事件中写代码,如何在用户击打其它无关键时不弹出下拉列表呢?况且,用更改事件时,首先,原问题还是存在的,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 14:21 , Processed in 0.104607 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表