读书人

怎么根据列名得到他的列号

发布时间: 2012-12-15 15:16:03 作者: rapoo

如何根据列名得到他的列号
VBA 如何根据列名得到他的列号
例如:
A B C
姓名 班级 性别
我知道“班级”这个列名,得到它的列是B
[最优解释]
应该说你想通过列名找到其序号(index),你只要通过列名遍历表中字段名,找到匹配列的对应序号就可以了。至于你要怎么命名,具体处理一下就可以了。

下面以ADO为例,返回指定列名的序号(从1开始)


Function GetIndex(name As String)
Dim conn As ADODB.Connection

Set conn = New ADODB.Connection
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "d:/work/db1.mdb"

Dim rs As New ADODB.Recordset

rs.Open "Student", conn


Dim i As Integer

For i = 1 To rs.Fields.Count
If (name = rs.Fields(i - 1).name) Then
GetIndex = i
GoTo CloseALL
End If
Next

CloseALL:
'- not found
If i > rs.Fields.Count Then
GetIndex = -1
End If
rs.Close

conn.Close

End Function

Sub Test()
Debug.Print GetIndex("姓名")
End Sub

[其他解释]
严格地说,列并没有什么号.列的先后次序不是固定的,只有你在查询语句中的列名列表中才会有先后.

读书人网 >VB

热点推荐