首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2012-12-15 
如何根据列名得到他的列号VBA 如何根据列名得到他的列号例如: ABC 姓名 班级 性别我知道“班级”这个列名,得

如何根据列名得到他的列号
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

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

热点排行