Office中国论坛/Access中国论坛

标题: [求助]怎么取出文本字段中的数字片断. [打印本页]

作者: aixiang225858    时间: 2006-11-20 19:02
标题: [求助]怎么取出文本字段中的数字片断.
我有一个字段是文本字段.

如:记录为'3-3-1'

                 '3-3-2'

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

                '3-3-2000'

共2000条记录

但我现在想要根据字段的最后一节,如取出>1000的记录,即'3-3-1001'到'3-3-2000'该怎么操作啊.

我用的是access2003


作者: aixiang225858    时间: 2006-11-20 22:14
晕,没人回答啊.
作者: 一点通    时间: 2006-11-20 22:22
上传示例更易回复或调试你的问题
作者: fan0217    时间: 2006-11-20 22:26
用Split拆开,然后比较。
作者: aixiang225858    时间: 2006-11-20 22:52
数据表内容 字段

     3-3-1

     3-3-2

     3-3-3

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

     3-3-999

     3-3-1000

     3-3-1001

     3-3-1002

    ...........

     3-3-2000

共2000条记录

字段类型为文本型,

我现在需要将文本中第三段中>1000的提取出来.就是'3-3-1001'到'3-3-2000'

这1000条记录提取出来.该怎么做呢.
作者: fan0217    时间: 2006-11-20 23:09
Function MyExp(expression As String, max As Integer, min As Integer) As String
    Dim varTemp As Variant
    Dim strTemp As String
    varTemp = Split(expression, "-")
    strTemp = CInt(varTemp(2))
    If strTemp >= min And strTemp < max Then
        MyExp = expression
    Else
        MyExp = ""
    End If
End Function


debug.Print MyExp("3-3-1001",2000,1000)
3-3-1001

如果大于或等于1000 ,或者小于2000则返回原来的表达式,否则返回空。


[此贴子已经被作者于2006-11-20 15:18:23编辑过]


作者: 一点通    时间: 2006-11-20 23:18
如果格式是固定的话,可以在查询中这样写

SELECT Mid([字段],5,8) AS 提取数
FROM 表1
WHERE (((Mid([字段],5,8))>1000));

作者: wwwwa    时间: 2006-11-20 23:18
TRY:

如格式一致的话:

SELECT PO(RR), *
FROM A33;
模块

Function PO(RR As String)
RT = Split(RR, "-")
If UBound(RT) > 0 Then
PO = RT(2)
Else
PO = 0
End If
作者: wwwwa    时间: 2006-11-20 23:20
or

SELECT Mid(f1,5,8),* FROM tt
作者: aixiang225858    时间: 2006-11-20 23:21
我已经解决了,谢谢楼上几位.

我是这样做的.

select *

from 数据表

where eval(right(字段,4))>1000;




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