Access交流中心

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

如何提取字段内所需的数值?

天地  发表于:2011-03-10 12:08:52  
复制

例如:用扫描枪输入类似条形码的数值,AS201009020770235K ,中间20100902 是2010年09月02日,之后的 07 代表工步骤什么,每个数字和字母都代表着什么。那如果在总的这个数值里提取自己需要的并且分别显示出来。 直接在查询里把整个一段分成单独 一小段一小段的单独数据。方便显示。

另外有什么办法把输入的一段数值直接分开存在不同的表里?

 

Top
天地 发表于:2011-03-10 13:54:30
可以提取第几位到第几位的数值吗?第一列提取1-2位,第二列提取3-8位。。。。。用这种方法。不知道怎么写法。

金宇 发表于:2011-03-10 13:56:16

可以在查询中使用函数提取自己需要部分,例如Mid("AS201009020770235K",3,8) 就能取到年月日的部分,如果你是在查询中可以使用Mid(条码字段名称,3,8)取年月日



天地 发表于:2011-03-10 15:31:56

MID 是提取数字的函数吧?

这个提取是所有数值,可能是字母,都要提取的,然后分别成几个列。最多是第几个是数字和字母可以限定,但是全部都是不固定的对象。

 

有按位置的操作方法吗?因为有时候中间会隔着的,像数字中间有字母,或字母中间有数字。所以按顺序应该比较好点。



煮江品茶 发表于:2011-03-10 15:49:36

mid的第二个参数是位置,第三个参数是长度。

不要臆想行还是不行,实际操作一下就明白了。



天地 发表于:2011-03-10 16:30:17
哦哦,这样啊,那这个是写在查询的表达式里吗?或者where条件里。

天地 发表于:2011-03-10 16:35:36
是写在窗体 文本控件 的控件来源里吧,不能像查询里那样,查询打开第一列总的数值,然后后面一列一列的分开显示出来吗?

天地 发表于:2011-03-10 16:40:17

直接用窗体控件显示会有个问题,就是用其中的数值或字母代替工序的话,前台应该根据这些显示出不同的工序汉字等,那这样一写的话,就是最终显示的内容的样子了。

 

像其中07 显示压铸,  那用控件,就直接显示出来07了,要是用后面的关联,那显示出来的就是压铸,如果是08 那机加工打磨,是5个字的话,那直接显示的就是5个字,然后显示2个 就成了 机加了。



煮江品茶 发表于:2011-03-10 17:03:31

用到哪里和怎么样都不是问题的关键,关键是先用一下,搞明白这个函数是怎么个意思。

比如说你表中有一个叫做条形码的字段,你想取1至2位的字符为第一列,3至6位的字符为第二列,你可以在查询中写:

select *,mid(条形码,1,2) as f1,mid(条形码,3,3) as f2 from tbname

 

 



天地 发表于:2011-03-11 14:27:10
恩,可以了,查询里也可以做到了,谢谢。

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