将文本转换为格式化的数字类型

时间:2012-07-17 02:12:04

标签: ms-access access-vba ms-access-2003

我正在帮助某人整理数据库。它由形式为A-BBB的文本类型的ID索引,其中A和B是数字0-9。我们的应用程序需要这个表单,它是按ASCII标准排序的唯一缺点,因此编号为1,10,2等。显然,我们希望它按A排序,然后按BBB排序。因此,ID 1-001,10-010,1-010和10-001将按1-001,1-010,10-001和10-010排序。

我尝试更改表格以保存数字类型,并使用多种格式#\###来允许“ - ”字符。根据我对格式化数字的理解,#存储一个数字,而\显示下一个字符就像字面意思一样。

我是否完全没有解决这个问题,或者我错过了哪些小事?

1 个答案:

答案 0 :(得分:2)

您可以按每一半排序,例如:

SELECT * FROM Table
ORDER BY Val(Left(ID,Instr(Id,"-"))), Val(Mid(ID,Instr(Id,"-")+1))