access数据库中,有一字估"Address" 字符型
输入内容:
1-1-1
2-2-2
1-1-3
1-1-10
1-1-11
用select address from 表
结果为
1-1-1
1-1-10
1-1-11
1-1-3
2-2-2
而我想要的结果是
1-1-1
1-1-3
1-1-10
1-1-11
...
同样一条命令,加结果加载到combox中,结果正是我所想要的.
百思不得其解,请望各位指点迷津

解决方案 »

  1.   

    你可以用datatable view的排序功能,当然你先将table添加三个排序字段(int) 如s1,s2,s3,
    然后将
    Address的值split(“-”)分别写入添加的字段在家datatable.defaultview.sort="s1,s2,s3";这样defaultview就是按照你需要的顺序输出了。
      

  2.   

    在Access数据库在自建模块,代码如下:
    Public Function formatMph(strMph)
    Dim d As String
    Dim dy As String
    Dim h As String
    Dim tmp
    tmp = Split(strMph, "-", -1, 1)If (Len(tmp(0)) = 2) Then
        If (Mid(tmp(0), 1, 1) = "0") Then
           d = Mid(tmp(0), 2, 1)
        Else
            d = tmp(0)
        End If
    Else
        d = tmp(0)
    End IfIf (Len(tmp(1)) = 2) Then
        If (Mid(tmp(1), 1, 1) = "0") Then
           dy = Mid(tmp(1), 2, 1)
        Else
            dy = tmp(1)
        End If
    Else
        dy = tmp(1)
    End If
        
    If (Len(tmp(2)) = 2) Then
        If (Mid(tmp(2), 1, 1) = "0") Then
           h = Mid(tmp(2), 2, 1)
        Else
            h = tmp(2)
        End If
    Else
        h = tmp(0)
    End If
        
    formatMph = d + "-" + dy + "-" + hEnd Function
    然后在"查询"建立查询调用此函数能解决门牌号问题,运行正常.
    select formatMph([UAddress]) from tableCustom
    但在Winform下调用此查询时,却提示表达式formatMph()函数未定义,可在Access里执行此查询不报错.何故?
      

  3.   

    原因找到了.ACCESS里的自定义函数,离了这个环境就不会被承认.
    只好想其它办法了.结了