Access交流中心

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

怎样提取文本中的一个或一组数值?

ynfsr  发表于:2011-04-17 11:33:19  
复制

地址              显示数字
延安路18号          18
延安路9号            9
胜利街26号          26
胜利街38号          38
澳柯玛大道39号      39
辛兴村二组72号      72
辛兴村一组39号      39
红光234号          234
红光67号            67

 

 

Top
煮江品茶 发表于:2011-04-17 11:58:05

1、在标准模块中写一自定义函数:
function 数(文本 as string) as long
dim str as string
dim i as long,n as long
str=文本
n=len(str)
for i=1 to n
   if Asc(mid(str,1,1)<Asc(0) or Asc(mid(str,1,1)>Asc(9) then
       str=Right(str,len(str)-1)
   else
       exit for
   end if
next
if len(nz(str,""))=0 then
   数=null
else
   数=val(str)
end if
end function

 

2、在查询中调用该函数:
select *,数(地址) as 提取数字 from tbname

 

以上函数没有测试,你试试看。



ynfsr 发表于:2011-04-18 07:58:21

再次感谢  煮江品茶 老师!

 

上次拷贝后无法使用,仔细观察后发现

 

 if Asc(mid(str,1,1)<Asc(0) or Asc(mid(str,1,1)>Asc(9) then 丢失了两个右括号

 

if len(nz(str,""))=0 then
   数=null
改为
if len(nz(str,""))=0 then
   数=0
才能使用

 

谢谢!!!



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