Office中国论坛/Access中国论坛

标题: [求助]求前后部分相同的字符串合并中间部分的自定义函数 [打印本页]

作者: wang1950317    时间: 2006-6-15 16:52
标题: [求助]求前后部分相同的字符串合并中间部分的自定义函数
各位老师们好!又有一个有关字符串的题目,请看有否解决办法:查询表1(同一编号)

编号                     标准                      。。。。。。

A01               GB/T4789.5-2003

A01               GB/T4789.8-2003

A01               GB/T4789.11-2003

A01               GB/T4789.5-2003

A01               GB17653.5-1998

A01               GB17653.5-1998

A01                GB17653.122-1998

                      ............................

(格式特点:“-”后年号,“.”后一位至3位,)

要求:将标准列合并成:(头尾相同部分不变,中间不同部分合并,有重复的只出现一次)

                       GB/T4789.5.8.11-2003

                        GB17653.5.122-2003

                    .....................................

能做成自定义函数吗?谢谢!

[此贴子已经被作者于2006-6-15 8:54:49编辑过]


作者: fan0217    时间: 2006-6-15 22:00
应该可以的。

首先将字符串拆分,然后将前后相同部分字段的中间字符串合并在一起,最后将前后他们串起来。

要使用到ADO。自己按这个思路做下去。
作者: wang1950317    时间: 2006-6-15 22:00
顶一下!
作者: andymark    时间: 2006-6-15 22:05
最好把例子传上来,方便测试
作者: wang1950317    时间: 2006-6-16 00:41
标题: 上传
谢谢楼上的版主老师!请看示意图:[attach]18512[/attach]


[此贴子已经被作者于2006-6-15 16:47:00编辑过]


作者: andymark    时间: 2006-6-16 06:20
看看这样是否满足你的要求

[attach]18520[/attach]

作者: wang1950317    时间: 2006-6-16 07:47
标题: 谢谢!
谢谢andymark版主的耐心解答。快达到目的啦![attach]18523[/attach]

作者: andymark    时间: 2006-6-16 21:41
[attach]18535[/attach]

作者: wang1950317    时间: 2006-6-16 22:16
非常感谢andymark版主的耐心指点!两个既然可以串起来(GB/T5009.12.13-2003),所有GB/T5009的都可以串在一起(GB/T5009.12.13.19-2003)就更好了。是不是难度大?有些得陇望蜀了吧?不好意思!谢谢!



作者: andymark    时间: 2006-6-16 22:22
原理是一样的,你的意思是不分样品编号,全都合在一起对吗
作者: wang1950317    时间: 2006-6-17 00:40
是一个标准代号的在一起,

不希望一个代号分成两行:  GB/T5009.12.13-2003

                                            GB/T5009.19-2003

希望是凡 GB/T5009的在一行  GB/T5009.12.13.19-2003

如果是:    GB/T5009.12.13-2003

                 GB/T5009.19-2003

                 GB17653.15.16-1995

               GB17653.5.221-1995

则希望 最终结果是:  GB/T5009.12.13.19-2003

                                   GB17653.5.15.16.221-1995


请版主不要嫌我啰嗦!

谢谢!



[此贴子已经被作者于2006-6-16 16:41:51编辑过]


作者: andymark    时间: 2006-6-17 03:49


只要把 样品编号= '" & Me.List茶叶类 & "'  这个筛选条件去掉就行了

[attach]18542[/attach]

作者: wang1950317    时间: 2006-6-17 18:04
andymark老师,辛苦啦!还有点小问题,能解决就万事大吉啦。
[attach]18550[/attach]


[此贴子已经被作者于2006-6-17 10:11:56编辑过]


作者: andymark    时间: 2006-6-17 21:50
我是按你所说的把全部一个编号的合在一起。现在无论A20060317-01-05-001、A20060317-01-05-001都不会变的。可能我没能真正理解你的意思,你再详细说一下
作者: wang1950317    时间: 2006-6-18 00:23
andymark版主:再改动一下,不知您能不能理解我的意思。[attach]18558[/attach]

作者: fan0217    时间: 2006-6-18 00:40
关键的问题不是得到最终的结果,而是你充分理解这结果是怎样得来的,你充分理解后,就可以按照自己的意图来完成了。


作者: andymark    时间: 2006-6-18 00:45
这不是跟之前一样吗,至于  GB/T5009.19-2003 和 GB/5009.11-2003 没有合在一起。是因为GB/T5009和GB/5009看成2个编码,如果你要把它合在一个编码,必须把具体的规则详细说明才行

[attach]18559[/attach]

作者: wang1950317    时间: 2006-6-18 01:54
非常感谢andymark版主,要的就是这样的效果。是我自己昏了头,把GB/T5009错成GB/5009了,现在回过头来看,实际上您在8楼的答复就已经符合要求了,我还以为一个编号分成了了两行呢,平常都是很小心的,这次真是鬼迷心窍了,怎么办,该打!!    fan0217版主说得对,我该慢慢把这些内容好好学习,才不辜负andymark版主一片诲人不倦之心。离得远了,不能请酒,在这里再次鞠躬致谢吧!




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