ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

使用Excel VBA 获取Access数据库中表(TableDefs)的字段(Fields)名称(Name)和类型(Type)

2022-01-21 16:32:51  阅读:269  来源: 互联网

标签:VBA Set Name Fields Object DB Number TableDefs Rst


使用DAO和ADODB 2中方法获取,结果显示在Debug中,以”,“分开,方便复制到Excel中处理。

附上常用对应关系。

'DAO ADO Type
'1   11  Yes/No
'2   17  Number byte
'3   2   Number Integer
'4   3   Number LongInteger
'4   3   AutoNumber
'5   6   Currency
'6   4   Number Single
'7   5   Number Double
'15  72  Number Replication ID
'20  131 Number Decimal
'8   7   Date/Time
'10  202 Short Text
'11  205 OLE Object
'12  203 Hyperlink
'12  203 Long Text
'16  20  Large Number
'26  135 Date/Time Extended
'101 203 Attachement

程序如下:

Sub GetDatabaseType()
    
    Dim DBE As Object, DB As Object, Tbl As Object, TbName As String
    Dim Rst As Object, SQL As String
    Dim i As Long
    
    TbName = "Hand" '表名
    
    SQL = "SELECT * FROM " & TbName
    Set Rst = CreateObject("ADODB.RecordSet")
    
    Set DBE = CreateObject("DAO.DBEngine.120")
    Set DB = DBE.OpenDatabase(PathBas & "\Database\xxxxx.accdb")'路径
    Set Tbl = DB.TableDefs(TbName)
    
    Rst.Open SQL, "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathBas & "\Database\xxxxx.accdb", 1, 1
    
    With Tbl
        For i = 0 To .Fields.Count - 1
            Debug.Print .Fields(i).Name & "," & .Fields(i).Type & "," & Rst.Fields(i).Type
        Next
    End With

    Rst.Close
    DB.Close
    
    Set Rst = Nothing
    Set Tbl = Nothing
    Set DB = Nothing
    Set DBE = Nothing

End Sub

 

标签:VBA,Set,Name,Fields,Object,DB,Number,TableDefs,Rst
来源: https://www.cnblogs.com/NightSun/p/15830733.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有