access取字段中间一部分的值

我现在有一数据库,其中有一表的编号字段的值的格式是如下形式的:ABC-DEF-G001
我现在想取该字段的两个减号中间的值,请问应该用什么语句。希望高手帮忙,我是菜鸟,请详细些。就20分了,都给了,拜谢了。
一楼的大哥,答非所问吧?

难道没人知道吗???

  1、取字段值中间的一部分使用mid函数即可。函数格式如下:
  mid(<字段名>,<起始位数>[,<截取位数>])
  2、说明:第三个参数为可选,省略该参数一直截取到末尾。
  3、举例说明如下:
  mid(住址,4,3),表示取住址字符串从第四位开始连续的3个字符
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-23
用Mid()函数:
Mid("ABC-DEF-G001 ", 5, 3)追问

你好,感谢你回答我的问题,补充一下啊,我说的不够全面,因为有的值是 QQWERQWER-ADSFASF-WER332 就是说,‘-’号前面和‘-’号后面的值不是固定长度的,而且两个‘-’号中间的值也不是固定长度的,请问你还好什么好办法吗?先谢谢了啊

追答

分两步:
一、字符串A=Mid(字段名, IsStr(字段名,"-")+1,字符数量)
二、字符串B=Mid(字符串A, 1,IsStr(字段名,"-")-1)
字符串B就是中间的字符。

追问

虽然函数打错了,应是INSTR,但是给我了启发。
Mid(Mid([字段],InStr([字段],'-')+1,1000),1,InStr(Mid([字段],InStr([字段],'-')+1,1000),"-")-1)

本回答被提问者采纳
第2个回答  2011-02-22
String _Price = "2000+10%"; // 假定你取的其中一条数据是这样的
String strPricePatten = ·"[0-9]+\.?[0-9]*"; // 要进行匹配的正则表达式
Regex rgxMatchPrice = new Regex(StrPricePatten);
String strMatchValue = rgxMatchPrice.Match(_Price).ToString(); // 匹配的结果

参考资料:百度一下

access取字段中间一部分的值
1、取字段值中间的一部分使用mid函数即可。函数格式如下:mid(<字段名>,<起始位数>[,<截取位数>])2、说明:第三个参数为可选,省略该参数一直截取到末尾。3、举例说明如下:mid(住址,4,3),表示取住址字符串从第四位开始连续的3个字符 ...

如何在ACCESS某一个字段中选择其中一部分?
nr=rs("字段名")aa=split(nr,",")aa(0) 就是你要输出的 东西 不明白的话,QQ:479649847

如何提取ACCESS数据库中某表中某一单元的数据
获取数据表某些单元的数据,一般可以用SQL选择查询,选定输出字段加上筛选条件选字段来确定,例如 select 课程 from 课程表 where 课程id='001';如果数据表具有唯一约束的列,例如主键或带唯一索引的字段,那么我们就可以用该列名或者说是字段名(横向坐标)加列值(纵向坐标)来精确定位某个记录单元。但是...

ACCESS 数据库 字符串如何截取其中数字排序
如果字段值开始都是数字的话,那么使用Val函数来排序最为便捷。例如运行SQL语句:select * from 表名order by val(排序字段名)如果表中只含上述数据 那么该语句返回下列排序效果 说明 Val函数 返回包含于字符串内的数字,字符串中是一个适当类型的数值。在它不能识别为数字的第一个字符上,停止读入字...

access 中 sql 截取部分数据的问题
a FROM tab1可以这样:SELECT mid( a,instr(1, a,'\/\/')+2,instr(1, a,'.com')-instr(1, a,'\/\/')+2) FROM tab1 如果网址都是单纯的com还好说,但如果还有其它的 .cn、.com.cn、.org等,在sql语句里面处理就不好办了,最好先把数据加载到程序里,在程序里处理完在写入b表 ...

access中如何查询a字段中的某1个值对应的所有b字段中包含特定的多个值的...
用日期和用户名分组汇总金额字段即可求出来 SQL语句如下:select 日期,用户名,sum(资金) as 资金总额 from 你的表名 group by 日期,用户名 order by 日期,用户名 将上述SQL语句套上正确的表名,复制黏贴到SQL查询视图,点击工具栏运行命令(带叹号图标的)即可求出每天每个用户的资金总额。关于楼主...

access函数返回表中某字段的数值。
在表属性的有效性规则中输入[最低储备]<[最高储备]。在表的设计视图中的“效性规则”中写:>n and <n1。update table_name set 库存数量=xxxxx where 主键1=xxx and 主键2=xxxx

Access中字段数据有空格怎么提取指定值
增加1个辅助表(lsb),字段ID,内容1-100000 SELECT a.*, mid(' ' & A.Bh & ' ',b.id1+1,instr(b.id1+1,' ' & A.Bh & ' ',' ')-b.id1-1) AS aa1 FROM tth AS A LEFT JOIN LSB1 AS B ON B.ID1<=LEN(' ' & a.Bh & ' ')WHERE MID(' ' & A.Bh & ' '...

access中如何查询a字段中的某1个值对应的所有b字段中包...
回答:select * from 表X where 姓名 in (select 姓名 from (select distinct 姓名 from 表X where instr(购买物,'苹果')>0 union all select distinct 姓名 from 表X where instr(购买物,'香蕉')>0) as T group by 姓名 having count(*)=2 ) 与T对应的子查询是一个union all,union...

如何将ACCESS表中一个字段内的相同数据或者文本筛选出来
可以使用对该字段分组计数、再筛选小组计数大于1这个办法,筛选出有重复的记录。例如:select [被查字段名] from 表名 group by [被查字段名] having count([被查字段名])>1 如果需要输出所有字段,则可以这样写:select * from 表名 where [被查字段名] in (select [被查字段名] from 表名 ...

相似回答