如果中间有固定标志,比如空格,逗号,可以看看这个。Option ExplicitPrivate Sub Command1_Click()
    Dim a() As String
    Dim s As String
    s = "0311-3838438"
    prase s, a()
    Dim i As Integer
    For i = 1 To UBound(a)
        Debug.Print a(i)
    Next i
    ReDim a(0)
    s = "86,0311,3838438"
    prase s, a()
    For i = 1 To UBound(a)
        Debug.Print a(i)
    Next i
    
End SubPrivate Sub prase(ByVal s As String, a() As String)
    Dim i As Long
    Dim j As Long
    For i = 1 To Len(s)
        If Mid(s, i, 1) <> "-" And Mid(s, i, 1) <> "," And Mid(s, i, 1) <> " " Then
            j = i
            Do
                j = j + 1
            Loop While Mid(s, j, 1) <> "-" And Mid(s, j, 1) <> "," And Mid(s, j, 1) <> " " And j <= Len(s)
            ReDim Preserve a(u(a) + 1)
            a(UBound(a)) = Mid(s, i, j - i)
            i = j
        Else
            Do
                i = i + 1
            Loop While Mid(s, i, 1) = "-" Or Mid(s, i, 1) = "," Or Mid(s, i, 1) = " " And i <= Len(s)
            i = i - 1
        End If
    Next i
End SubPrivate Function u(a() As String) As Long
    On Error GoTo errhandle
    u = UBound(a)
    Exit Function
errhandle:
    u = 0
End Function------------------------------------
0311
3838438
86
0311
3838438

解决方案 »

  1.   

    谢谢你的代码,可是很不好意思我还是不大懂
    我想让access中的某个字段拆成几个,然后在mshflexgrid中显示出来
    像这样
                   _________________________
                   |      姓       名       |
                   -------------------------         
                   |  姓氏      |    名字   |
                   -------------------------
      

  2.   

    这个不是很简单么??但你事先必须先作一些约定
    例如:输入字段长度上必须固定,在这个问题中,姓名字段假设为6字节,2个为姓,后四个为名字
    那么在程序中需要显示的时候用mid函数取出来分别显示就是了
    dim xing as string
    dim ming as string
    xing=mid(数据库中取出的姓名字段的值,1,2)
    ming=mid(数据库中取出的姓名字段的值,3,4)还有一点就是你最好自己编程序在表格中显示各个变量
    不要绑定,那么做不灵活,例如,当你从数据库中取出了以后,可以这么显示
    dim db as new adodb.connection
    dim rs as new adors.recordset
    dim sql as string
    sql="数据库驱动程序+数据库路径"
    db.open sql
    sql="select name from name表"
    rs.open sql,db,1,3
    grid.row=1
    do while not rs.eof 
      xing=mid(rs(0).value,1,2)
      ming=mid(rs(0).value,3,4)
      grid.col=0
      grid.text=xing
      grid.col=1
      grid.text=ming
      rs.movenext
      grid.row=grid.row+1
    loop
    这是最基本的格式,完善程序你得去熟悉这些控件的用法和数据库访问的基本知识
      

  3.   

    楼上的已经把拆分字段讲得很清楚了,至于在msflexgrid中显示,就该对控件操作。