在Access数据表中,我们需要对数据按序号进行排序。如果是文本类型,即不会按阿拉伯数字大小排序。
比如说表中数据有文件编号,文件编号为 公告[2017]3号,[2017]12号......需要按文件编号顺序排序
这里如果用系统自带的排序功能或者直接用order by排序都是不正确的。
所以需要创建查询,分别提取年份和号数,然后排序
SELECT 表1.文件编号, CLng(Mid([文件编号],InStr(1,[文件编号],"[")+1,4)) AS 年份, CLng(Mid([文件编号],InStr(1,[文件编号],"]")+1,InStr(1,[文件编号],"号")-InStr(1,[文件编号],"]")-1)) AS 编号 FROM 表1 ORDER BY CLng(Mid([文件编号],InStr(1,[文件编号],"[")+1,4)), CLng(Mid([文件编号],InStr(1,[文件编号],"]")+1,InStr(1,[文件编号],"号")-InStr(1,[文件编号],"]")-1));
更多的Access技巧源码请关注Office交流网:http://www.office-cn.net