【问题标题】:how to get column names of a table in ms access? [duplicate]如何在 ms 访问中获取表的列名? [复制]
【发布时间】:2011-02-04 04:32:28
【问题描述】:

如何使用查询在msaccess中获取表的字段名或列名?

有人可以帮我解决这个问题吗?

如果我有一个名为“employee”的表,我需要单独获取员工的字段名(id、name、workstatus..etc)而不是它的记录......有什么方法可以得到这个吗?

谢谢

【问题讨论】:

    标签: ms-access ms-access-2007


    【解决方案1】:

    这是我过去用来跟踪审计等的一些代码。我不能把它归功于它,我很久以前在网上找到的

    Sub GetField2Description()
    '**********************************************************
    'Purpose:   1) Deletes and recreates a table (tblFields)
    '           2) Queries table MSysObjects to return names of
    '              all tables in the database
    '           3) Populates tblFields
    'Coded by:  raskew
    'Inputs:    From debug window:
    '           Call GetField2Description
    'Output:    See tblFields
    '**********************************************************
    
    Dim db As Database, td As TableDef
    Dim rs As Recordset, rs2 As Recordset
    Dim Test As String, NameHold As String
    Dim typehold As String, SizeHold As String
    Dim fielddescription As String, tName As String
    Dim n As Long, i As Long
    Dim fld As Field, strSQL As String
    n = 0
    Set db = CurrentDb
    ' Trap for any errors.
        On Error Resume Next
    tName = "tblFields"
    
    'Does table "tblFields" exist?  If true, delete it;
    docmd.SetWarnings False
       docmd.DeleteObject acTable, "tblFields"
    docmd.SetWarnings True
    'End If
    'Create new tblTable
    db.Execute "CREATE TABLE tblFields(Object TEXT (55), FieldName TEXT (55), FieldType TEXT (20), FieldSize Long, FieldAttributes Long, FldDescription TEXT (20));"
    
    strSQL = "SELECT MSysObjects.Name, MSysObjects.Type From MsysObjects WHERE"
    strSQL = strSQL + "((MSysObjects.Type)=1)"
    strSQL = strSQL + "ORDER BY MSysObjects.Name;"
    
    Set rs = db.OpenRecordset(strSQL)
    If Not rs.BOF Then
       ' Get number of records in recordset
       rs.MoveLast
       n = rs.RecordCount
       rs.MoveFirst
    End If
    
    Set rs2 = db.OpenRecordset("tblFields")
    
    For i = 0 To n - 1
      fielddescription = " "
      Set td = db.TableDefs(i)
        'Skip over any MSys objects
        If Left(rs!Name, 4) <> "MSys" And Left(rs!Name, 1) <> "~" Then
           NameHold = rs!Name
           On Error Resume Next
           For Each fld In td.Fields
              fielddescription = fld.Name
              typehold = FieldType(fld.Type)
              SizeHold = fld.Size
              rs2.AddNew
              rs2!Object = NameHold
              rs2!FieldName = fielddescription
              rs2!FieldType = typehold
              rs2!FieldSize = SizeHold
              rs2!FieldAttributes = fld.Attributes
              rs2!FldDescription = fld.Properties("description")
              rs2.Update
           Next fld
    
           Resume Next
        End If
        rs.MoveNext
    Next i
    rs.Close
    rs2.Close
    db.Close
    End Sub
    
    Function FieldType(intType As Integer) As String
    
    Select Case intType
        Case dbBoolean
            FieldType = "dbBoolean"    '1
        Case dbByte
            FieldType = "dbByte"       '2
        Case dbInteger
            FieldType = "dbInteger"    '3
        Case dbLong
            FieldType = "dbLong"       '4
        Case dbCurrency
            FieldType = "dbCurrency"   '5
        Case dbSingle
            FieldType = "dbSingle"     '6
        Case dbDouble
            FieldType = "dbDouble"     '7
        Case dbDate
            FieldType = "dbDate"       '8
        Case dbBinary
            FieldType = "dbBinary"     '9
        Case dbText
            FieldType = "dbText"       '10
        Case dbLongBinary
            FieldType = "dbLongBinary" '11
        Case dbMemo
            FieldType = "dbMemo"       '12
        Case dbGUID
            FieldType = "dbGUID"       '15
    End Select
    
    End Function
    

    【讨论】:

    • 到处找这个。谢谢,一年半后!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多