如何从MS Access导出表名、列名及数据类型至Excel?
导出Access表结构到Excel的两种实用方法
方法一:无需VBA,用Access自带工具搞定
- 打开目标Access数据库
- 点击顶部菜单栏的数据库工具,找到并打开文档管理器
- 在弹窗里勾选表,点击确定
- 文档管理器会生成所有表的完整结构信息,包括表名、列名、数据类型、字段大小等
- 点击窗口里的导出按钮,选择导出为Excel格式,保存到指定路径即可
方法二:新手友好的VBA脚本(复制即用)
如果想用VBA导出,按以下步骤操作:
- 打开Access数据库,按
Alt + F11打开VBA编辑器 - 右键左侧数据库名称,选择插入→模块
- 粘贴以下代码:
Sub ExportTableStructureToExcel() Dim db As Database Dim tbl As TableDef Dim fld As Field Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Dim rowNum As Integer Set db = CurrentDb Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Sheets(1) ' 写入表头 xlSheet.Cells(1, 1).Value = "表名" xlSheet.Cells(1, 2).Value = "列名" xlSheet.Cells(1, 3).Value = "数据类型" rowNum = 2 ' 遍历所有表,跳过系统表 For Each tbl In db.TableDefs If Left(tbl.Name, 4) <> "MSys" Then For Each fld In tbl.Fields xlSheet.Cells(rowNum, 1).Value = tbl.Name xlSheet.Cells(rowNum, 2).Value = fld.Name ' 转换数据类型为易读名称 Select Case fld.Type Case dbText: xlSheet.Cells(rowNum, 3).Value = "文本" Case dbMemo: xlSheet.Cells(rowNum, 3).Value = "备注" Case dbInteger: xlSheet.Cells(rowNum, 3).Value = "整数" Case dbLong: xlSheet.Cells(rowNum, 3).Value = "长整型" Case dbSingle: xlSheet.Cells(rowNum, 3).Value = "单精度" Case dbDouble: xlSheet.Cells(rowNum, 3).Value = "双精度" Case dbCurrency: xlSheet.Cells(rowNum, 3).Value = "货币" Case dbDate: xlSheet.Cells(rowNum, 3).Value = "日期/时间" Case dbBoolean: xlSheet.Cells(rowNum, 3).Value = "是/否" Case dbAutoIncrField: xlSheet.Cells(rowNum, 3).Value = "自动编号" Case Else: xlSheet.Cells(rowNum, 3).Value = "其他" End Select rowNum = rowNum + 1 Next fld End If Next tbl ' 自动调整列宽 xlSheet.Columns("A:C").AutoFit ' 释放对象 Set fld = Nothing Set tbl = Nothing Set db = Nothing Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing MsgBox "导出完成!", vbInformation End Sub
- 按
F5运行宏,或回到Access界面按Alt + F8,选择ExportTableStructureToExcel执行 - 脚本会自动打开Excel,生成包含所需信息的表格
注意:运行前确保Excel已安装,Access启用宏(若弹出安全提示,选择启用内容)
内容的提问来源于stack exchange,提问作者Chris Wood
相关产品推荐
相关产品推荐

