如果中间有固定标志,比如空格,逗号,可以看看这个。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
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
我想让access中的某个字段拆成几个,然后在mshflexgrid中显示出来
像这样
_________________________
| 姓 名 |
-------------------------
| 姓氏 | 名字 |
-------------------------
例如:输入字段长度上必须固定,在这个问题中,姓名字段假设为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
这是最基本的格式,完善程序你得去熟悉这些控件的用法和数据库访问的基本知识