Access交流中心

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

如果让文本字段按照最后2位数进行排序?

王同  发表于:2009-03-19 10:32:51  
复制

字段类型是文本型,用于输入IP地址。

我的IP地址是顺序输入的,例如:

10.152.4.1

10.152.4.2

10.152.4.3

。。。

10.152.4.10

10.152.4.11

。。。

10.152.4.100

 

我用排序的时候,他是这么排序的:

10.152.4.1

10.152.4.10

10.152.4.11

。。。

10.152.4.19

10.152.4.2

10.152.4.21

。。。

 

急问解决办法为谢!

 

Top
access 发表于:2009-03-19 15:16:21

建1表达式:mid(ip,10,3) 得到 你后3位

再把后3位转换成数值, 标上排序就可以了



access 发表于:2009-03-19 15:20:49
Val(Mid(IP, 10, 3))

残荷听雨 发表于:2009-03-19 20:53:33

点击下载此附件

排序前的表:

排序后的查询:

 



access 发表于:2009-03-20 10:18:30
晕 你的IP 号 是长短不一的啊  我看了附件  再搞

青苹 发表于:2009-03-20 21:47:22

或者 Val(Right([IP],(Len([IP])-9)))



王同 发表于:2009-03-21 15:31:14

不能完全解决。

根据所属系统查询IP地址信息
IP地址
10.153.96.1
10.153.96.10
10.153.96.100
10.153.96.101
10.153.96.102
10.153.96.106
10.153.96.107
10.153.96.108
10.153.96.109
10.153.96.11
10.153.96.110

查询为:

SELECT *
FROM IP地址信息表
WHERE 所属系统id=[请输入所属系统(1为BOSS,2为OA,3为客服,4为12345,5为CMNET]
ORDER BY Val(Mid(IP地址,11,3)),Val(Mid(IP地址,8,2));

 

盼指点!

 



王同 发表于:2009-03-21 15:40:08

版主提供的附件我试了一下,在你的例子里没有问题。

但不知为什么,将那串


Val(Left([IP地址],(InStr(1,[IP地址],".")-1))), Val(Mid([IP地址],InStr(1,[IP地址],".")+1,InStr(InStr(1,[IP地址],".")+1,[IP地址],".")-InStr(1,[IP地址],".")-1)), Val(Mid([IP地址],InStr(InStr(1,[IP地址],".")+1,[IP地址],".")+1,InStr(InStr(InStr(1,[IP地址],".")+1,[IP地址],".")+1,[IP地址],".")-InStr(InStr(1,[IP地址],".")+1,[IP地址],".")-1)), Val(Right([IP地址],Len([IP地址])-InStr(InStr(InStr(1,[IP地址],".")+1,[IP地址],".")+1,[IP地址],".")));

放在我的代码里,没有效果,继续研究中。。。



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