设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 多种条码流水号自动截取问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-1-15 04:31:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现遇到一个实际业务中的难题:有多个不同长度的条码,而且尾部都带有流水号,现需要在将条码录入到单据中时,自动将尾部的流水号自动截取掉,并根据截取后的条码自动找到并带出对应的货品编码,颜色编码,尺码编码;     
但是,请注意!
1、不仅仅只是多个条码,如果仅仅是多个不同 长度条码,那我可以用类似 “ DLookup ” 语句来写,或像有些人所说先建立个货品+颜色+尺码的查询什么的;
2、也不是仅仅是截取部分,单单截取部分我可以用 “ DLookup + Mid 语句来写;
        现在的难题是,即有多个不同长度条码,而且每种条码尾部还有流水号需要截取,2个问题加一起,需要如何解决?是否要加入类似 if... then 语句什么的?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-1-15 10:10:29 | 只看该作者
用right函数不可以吗?
3#
发表于 2016-1-15 11:19:53 | 只看该作者
总有识别方式吧?例如,以短横线分开,或者以固定长度分开。
1、以固定长度分开比较容易,例如,从身份证里提取地区、生日等。。。
2、以分隔符分开,则可以用Instr来识别分隔符的位置,然后提取。存在多个相同的分隔符时,可以考虑用split分割为数组再提取。例如:
k=split("xxx-111-dd-999","-"), k(2)为dd。
不过,我觉得应该还是建表的问题。
4#
发表于 2016-1-15 11:51:06 | 只看该作者
没看明白..  正常一般的你能分辨出来 代码也能,你应该说的是excel中场景吧
5#
发表于 2016-1-15 16:56:09 | 只看该作者
给大湿们几个示例看看
6#
发表于 2016-1-16 10:44:56 | 只看该作者
流水号有固定数吗?
7#
 楼主| 发表于 2016-1-17 16:19:42 | 只看该作者
感谢大家的回复,这几天刚好出差,回复上有耽搁,请原谅.
现在情况是这样:条码很多,但基本是这样3大类,如附件中所示:
第一种,是如A001,A002之类,条码里并不包含货品编码,颜色,尺码等信息,但每个条码确实对应一个包含具体颜色\尺码的货品资料.
第二种,如B22105,B32658之类,条码就是货品编码+颜色编码+尺码编码,这个很好识别;
第三种,如C12381165,C22918778之类,条码是货品编码+颜色编码+尺码编码,后面再加个流水号,流水号的长度也不固定,但这个不是太重要,为了便于大家理解,我故意设成9999;
其他的颜色资料,尺码资料,本来单独有表,但为了沟通简单起见,我故意略去,请大家不要拘泥.
现在的问题是,每一种单独的条码我都能处理,下面是我的代码:
比如输入条码自动识别并显示相应资料:
Private Sub 条码_AfterUpdate()
     Me![货品编码] = DLookup("[货品编码]", "[货品资料]", "[条码]='" & [Forms]![采购单]![条码] & "'")
     Me![颜色] = DLookup("[颜色名称]", "[货品资料]", "[条码]='" & [Forms]![采购单]![条码] & "'")
     Me![尺码] = DLookup("[尺码名称]", "[货品资料]", "[条码]='" & [Forms]![采购单]![条码] & "'")
     Me![成本价] = DLookup("[成本价]", "[货品资料]", "[条码]='" & [Forms]![采购单]![条码] & "'")   
End Sub

又比如处理自动截取后面的流水号:
货品编码 = DLookup("货品编码", "货品资料", "货品编码='" & Mid(条码, 1, 9) & "'")
    颜色 = DLookup("颜色名称", "货品资料", "颜色编码='" & Mid(条码, 10, 2) & "'")
    尺码 = DLookup("尺码名称", "货品资料", "尺码编码='" & Mid(条码, 12, 2) & "'")

这些代码单独都可以使用,完全没问题;
但如果将2种代码都放上,那只能执行其中的一种规则,我就想解决这个问题.
怎么样让不管什么条码来,都可以找到对应的规则,而不是只能执行其中一种,其他类型条码无反应.
同时放多个条码规则,是否需要用类似if...then这类的语句,还是别的什么?
能否请大家指点,最好放上代码,先在此谢过.

本帖子中包含更多资源

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

x

点评

luntan论坛真乖 附件总是不存在  发表于 2016-1-17 18:59
8#
 楼主| 发表于 2016-1-17 16:20:45 | 只看该作者
access学习交流 发表于 2016-1-15 10:10
用right函数不可以吗?

不会用,能指点一下吗?
9#
 楼主| 发表于 2016-1-17 16:22:00 | 只看该作者
roych 发表于 2016-1-15 11:19
总有识别方式吧?例如,以短横线分开,或者以固定长度分开。
1、以固定长度分开比较容易,例如,从身份证 ...

每种类型的条码单独都能识别,但几种类型的代码放一块,就只能执行其中一种.问题在这里.
10#
 楼主| 发表于 2016-1-17 16:30:11 | 只看该作者
看了大家的回复,似乎都有所误解,问题不在于能否识别并读取条码,现在读取每种类型的条码都有其代码可以正常使用,但是在一个单据窗体进行录入扫描的时候,因为业务需要,有可能几种条码都要扫描到,那我在单据条码扫描字段设置事件的时候,如果只放一种规则,那其他条码过来就不能识别了,但如果把几种规则都放上,那它只能执行其中最后一种.如果我为每一种条码都设置一个单独的条码扫描录入窗口,那就很难和我们公司的业务吻合了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 00:54 , Processed in 0.105204 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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