首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

excel文件字符排序有关问题

2011-12-29 
excel文件字符排序问题一个excel文件,SHEET名为HCODE,第一列名为pfx,需要读这个文件的第一列数据,数据类似

excel文件字符排序问题
一个excel文件,SHEET名为HCODE,第一列名为pfx,需要读这个文件的第一列数据,
数据类似下面,都是一些手机号码的前缀
130
131
132
133
1330726
1331053
1331054
1331055
1331718
1331726
1331728
1332982
1332983
。。。。。。

下面这个方法读出来没有问题,但最后显示的结果顺序却不是按照字符的ASCII码的大小排序的,是按照字符串的长短,如下:

set   rs   =   CreateObject( "adodb.recordset ")
dim   strSql2

      strSql2   =   "SELECT   pfx       "
                    strSql2   =   strSql2   &   "   FROM   [HCODE$]   "  
  strSql2   =   strSql2   &   "order   by   pfx   "  

Set   rs=Conn.Execute(strSql2)


130    
131    
132    
133    
134    
135    
136    
137    
138    
139    
1330726    
1331053    
1331054    
1331055    
1331718    
1331726    
1331728    
1332982    
1332983    
1333749    
1333994    
1334355    
1336718    
1337796    
1338523    
1338769    
1339619    
13800138000  

而我希望的结果应该是按照字符的ASCII码大小排序,如下:
130    
131    
132    
133    
1330726    
1331053    
1331054    
1331055    
1331718    
1331726    
1331728    
1332982    
1332983    
1333749    
1333994    
1334355    
1336718    
1337796    
1338523    
1338769    
1339619    
134    
135    
136    
137    
138    
13800138000    
139    


baidu到一个方法就是在数字前面加单引号,这个方法试过后可以,但有没有其他的办法,直接改SQL的,因为EXCEL文件号码太多,不适合一一加;
我也试过vb的一些转换函数,如cint,clng,val...都不行

谢谢!!

[解决办法]
try

"select * from [HCODE$] order by format(pfx, '0000000000000 ') "
[解决办法]
先建立几个临时变量,把数字当作字符串放进去,位数不足的补齐,之后再进行排序
[解决办法]
方法一:在EXCEL里面先把所有的内容全部转成字符型,再转。

方法二:建立两个字段,一个字段用来存pfx,另外一个字段用来存它的序列。

热点排行