Office中国论坛/Access中国论坛

标题: 如何判断括号前有否字符串? [打印本页]

作者: cyber-bobo    时间: 2006-12-16 09:53
标题: 如何判断括号前有否字符串?
字段A内有记录:112233(111),(222)

想要的结果是:执行一更新查询后把记录更改为:112233(111),ok(222)

实际上就是要找出括号前无字符串的记录并在该字段的记录前加上字母“ok”,请各位赐教!

[此贴子已经被作者于2006-12-16 1:54:26编辑过]


作者: wang1950317    时间: 2006-12-16 19:32
以下是fan0217老师做的一个自定义函数,在此基础上作些修改(还要使用 UBound函数等等),可以达到你的要求,但如果记录的项数过多的话,恐怕就复杂了。期待专家有简洁的方法。

'-函数名称:         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
             '使用时:
             'Private Sub 样品编号_AfterUpdate()
             'Me.报告书号 = MySplit([样品编号])
             'End Sub
'=====================================================================
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

[此贴子已经被作者于2006-12-17 9:58:33编辑过]


作者: fan0217    时间: 2006-12-17 00:07
Function IsExistString(strMyStr As String) As Boolean
Dim strTemp As String
strTemp = Trim(Split(strMyStr, "(", -1)(0))
    If strTemp <> "" Then
        IsExistString = True
    Else
        IsExistString = False
    End If
End Function



调用: MsgBox IsExistString("112233(111)"),有返回真,否则返回假。

[此贴子已经被作者于2006-12-16 16:21:27编辑过]


作者: wang1950317    时间: 2006-12-17 01:35
Fan0217老师,如果字段中字符是这样的该如何办:

     字段1

112233(111),(222)

(222)

111(333),222(444),(555)
作者: fan0217    时间: 2006-12-17 02:06
先用Split将他们拆开,然后再作判断。
作者: crg770502    时间: 2006-12-17 04:22
UPDATE 表1 SET 表1.A = Replace([A],",(",",ok(");


UPDATE 表1 SET 表1.A = "ok" & 表1.A WHERE (((Left([A],1))="("));

作者: tz-chf    时间: 2006-12-17 06:05
不要用绿色的字,怎么看得清!




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