设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2005|回复: 8
打印 上一主题 下一主题

[与其它组件] [求助]怎样截取字符串中不确定字符?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2006-4-10 18:50:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位老师,有像如下编号: A20060315-01-02-003-001      wh20060317-02-05-132        质检20060322-01-15-012-2        现在要截取  A2006    wh2006    质检2006            同时,还要截取第 3 个 "-" 后面的三位数,最后组成  A2006003      wh2006132       质检2006012   该用什么样的方法?(年月前面的字符数不定,第三个“-”后面三位数固定,再往后的字符数不定),谢谢!



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-10 18:54:00 | 只看该作者
可以,需要自定义函数才可以的.

点击这里给我发消息

3#
 楼主| 发表于 2006-4-10 19:45:00 | 只看该作者
fan0217老师继续指点!小的对编码不通!谢谢!
4#
发表于 2006-4-10 21:42:00 | 只看该作者
'===============================================================================
'-函数名称:         MySplit
'-功能描述:         拆分字符串,获得指定格式
'-输入参数说明:     参数1:strMyStr As String 要拆分的字符串
'-返回参数说明:     拆分:质检20060322-01-15-012-2 将获得:质检2006012
'-使用语法示例:     MsgBox MySplit("质检20060322-01-15-012-2")
'-参考:
'-使用注意:
'-兼容性:           97,2000,XP,2003
'-作者:             fan0217 fan0217@163.com
'-更新日期:        2006-04-10
'===============================================================================
Function MySplit(strMyStr As String) As String
Dim strTemp As String

strTemp = Split(strMyStr, "-", -1)(0)
MySplit = Left(strTemp, Len(strTemp) - 4)

MySplit = MySplit & Split(strMyStr, "-", -1)(3)

End Function

点击这里给我发消息

5#
 楼主| 发表于 2006-4-10 22:18:00 | 只看该作者
fan0217版主真是诲人不倦哪!已多次得到您的帮助了,真是不好意思基础太差至今没有多大长进。谢谢您!

点击这里给我发消息

6#
 楼主| 发表于 2006-4-11 19:07:00 | 只看该作者

自定义函数运行问题

fan0217版主,还有点问题需要请教:窗体中有一个组合框[样品编号],一个文本框[报告书号] 我在[样品编号]“更新后”事件中调用您的自定义函数:

Private Sub 样品编号_AfterUpdate()
Me.报告书号 = MySplit([样品编号])
End Sub

出现提示:运行是错误‘9’:

           下标越界

按提示框中的调试模块中这段码是黄色的:

MySplit = MySplit & Split(strMyStr, "-", -1)(3)  不知该怎样解决?谢谢!





本帖子中包含更多资源

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

x
7#
发表于 2006-4-11 19:53:00 | 只看该作者
表设计时将编号分字段来存数据,需要时合并字段,因为合并比拆分容易。象国外的将姓和名都分开存储的,便于快速检索。
8#
发表于 2006-4-11 20:33:00 | 只看该作者
函数MySplit(strMyStr As String) 中的strMyStr必须是符合"质检20060322-01-15-012-2"这样的格式才行.

在上述函数中没有加入错误处理.你可以自己加入.

点击这里给我发消息

9#
 楼主| 发表于 2006-4-11 23:01:00 | 只看该作者
青青小妹的指点不无道理,但一个编号要分成数部分输入的话稍嫌麻烦,本来拆分字符串的目的就是为了简便,使[报告书号]自动合成。 按照fan0217版主的意见加入了错误的处理,前面的出错的话没有了,但“下标越界”的提示仍然出现。  分析原因还是我的组合框下拉单选项问题(不选下拉单选项而直接输入没有问题)。所以不在[样品编号]“更新后”事件中完成,改在“失去焦点”事件中完成,这样在输入完整个样品编号退出后才执行,也就没有了上述问题了。谢谢版主,这个问题又很好地解决了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 15:14 , Processed in 0.278083 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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