设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 如何做到在输入产品编号或名称任意一个字段中相似值时,弹出的下拉列表自动匹配

[复制链接]
跳转到指定楼层
1#
发表于 2010-10-19 20:39:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xryacc2 于 2010-10-20 23:11 编辑

在使用大型ERP,比如“用友”时,发现在输入进出流水单据中的“”存货名称“字段时,自动弹出的下拉列表不仅可以匹配相似存货编号显示,而且当用户记不住编码,输入中文字时,下拉列表也能自动匹配与产品名称相似的内容来显示,人机对话非常友好,但我在ACCESS中就是怎么也做不出这样的效果,望哪位高手帮助,不胜感谢!这个功能非常实用,如果解答顺利,我将持续请求并一起帮助完善。
附:未能做出效果的实例(请高手加工)

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2010-10-20 21:31:39 | 只看该作者
这个问题需要高手解救啊!
3#
发表于 2010-10-21 07:03:58 | 只看该作者
在使用大型ERP,比如“用友”时,发现在输入进出流水单据中的“”存货名称“字段时,自动弹出的下拉列表不仅 ...
xryacc2 发表于 2010-10-19 20:39

请参见《词组的自动记忆》一文。

4#
 楼主| 发表于 2010-10-22 00:25:54 | 只看该作者
本帖最后由 xryacc2 于 2010-10-22 00:32 编辑

我拜读了一下todaynew 的作品,感觉有一定的参考价值,但并不是我所要达到的效果,也许是我把引问题描述得不清,自已也感觉描述这个问题时比较吃力,干脆把模拟出来的效果用GIF图片上传,望高手们赐教。
附图说明:第1行和第2行的效果是:下拉列表自动匹配以英文、数字等字符组成的“编号”,并以背景色显示;
而第3行是假设用户记不住编码,只能输入产品名称(中文)情况下,弹出的下拉框中的来源值也自动相匹配。
以上都是每输入一个字符,下拉列表都自动移动背景色动态匹配,用户可以在不用输完全部编码的情况下,只要ENTER一下就输入完整的产品信息了,或者还可以更提前在背景色上下用箭头键移动到所要选择的产品后按ENTER也就可输入完整的产品信息,这非常方便,并大大提高了用户输入工作的效率。
相信用过大型ERP的网友就知道我所说的效果了,下载了本论坛不少实例,但从没发现哪个实例附带这样的效果,再次呼吁高手......

本帖子中包含更多资源

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

x
5#
发表于 2010-10-22 10:59:17 | 只看该作者
我拜读了一下todaynew 的作品,感觉有一定的参考价值,但并不是我所要达到的效果,也许是我把引问题描述得不 ...
xryacc2 发表于 2010-10-22 00:25

不知道是不是这么个意思:




本帖子中包含更多资源

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

x
6#
发表于 2010-10-22 11:58:10 | 只看该作者
数据表样子不大好弄,要改组合框数据源。
7#
 楼主| 发表于 2010-10-22 21:43:26 | 只看该作者
todaynew巧妙地用了“不在列表中”时,弹出匹配的内容的事件,我之前也这么干,但这都是要触发“移动焦点”这样的行为,比如当在“产品编号”字段的“焦点行”要弹出相似内容时,必须有移动焦点行为,要么是按“Enter”键等,要么是用鼠标点一下其它行或其它字段,当然焦点并不能移动,因为在试图移动焦点的过程中触发了“不在列表中”事件.......
以上所述就是todaynew做到的效果,我之前也这样做,但对用户提高输入速度并没有很好的效果。
我想说的是,当把组合框的“是否展开”设为是时,用户每输一个字符,弹出的下拉列表都动态地自运匹配,而当用户输入每一个“汉字”时,下拉列表也动态地自动匹配相似内容,请注意这个用词“动态匹配”,要做到动态匹配,如果用更新事件、不在列表中事件等等是不能做到的,似乎用“击键”事件(只能即时识别ASCII,不能即时识别汉字),用“键释放”似乎也有些可能,但如何在用户每输入一个字符时就动态匹配呢,我相到了用控件的text(比如me.产品编号.text),但好像有时会出错(尤其是在SQL语句中时)......
其实大家都有这样的经历,比如在安装一款软件输入注册码(比如每组4个字符)时,当在一个文本框中输入第4个字符且刚释放键时,焦点就会自动移到下一个文本框(在ACCESS中可用text做到),而并不需要按箭头键或Enter键或鼠标点击别的地方。
=======非常感谢todaynew 同志,todaynew 的贴子经常使我受益非浅,至于我发的这个贴子中所涉及的效果,可能在ACCESS中很难做到。
8#
发表于 2010-10-23 08:23:31 | 只看该作者
7#说的动态匹配要从第一个字符开始输入才行。应该用组合框,在change里处理,中文应该只需要输入拼音首字母。。。
9#
发表于 2010-10-23 10:25:05 | 只看该作者
看来4楼的思路真的不错,TODAYNEW的作品似乎没有完全达到楼主的要求。
10#
 楼主| 发表于 2010-10-23 21:39:30 | 只看该作者
本帖最后由 xryacc2 于 2010-10-23 21:56 编辑

8楼所说的输入中文用拼音首字符的方法,很有参考价值,似乎能在“击键”或“键释放”这样的即时事件中判别用户的输入行为,但要最终实现这样的效果可能会有一定难度,能否完善实例?
===============
另外要说明的是,这个实例已经是用了组合框控件了,是设在子窗体中的,子窗体是以数据表视图显示的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 03:24 , Processed in 0.095062 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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