当前位置: 首页 > news >正文

VBA批量读取access数据库(.mdb)

源码如下:

' ================================================
' 过程名称:LoadAllMDBData
' 功能描述:批量加载指定文件夹中的Access数据库(.mdb)文件数据到Excel工作表
' 主要功能:
'   1. 自动遍历"原始数据"子文件夹下的.mdb文件(最多20个)
'   2. 从每个文件的results表中提取CellHalf,Class,Eta,Uoc,AOI_1_R字段
'   3. 将数据合并到"原始数据"工作表中
' 输入参数:无
' 返回值:无
' 调用示例:直接运行LoadAllMDBData过程
' 依赖条件:
'   1. 需要启用Microsoft ActiveX Data Objects引用
'   2. 需要安装ACE OLEDB 12.0数据库驱动
' 作者:xiangbing
' 创建日期:2025-04-23
' 修改记录:
'   [日期] [修改人] [修改内容]
' ================================================
' 技术要点:
'   1. 使用ADODB.Connection连接Access数据库
'   2. 通过CopyFromRecordset方法实现高效数据导入
'   3. Dir函数实现文件遍历
'   4. 自动定位最后空行追加数据
' ================================================
Sub LoadAllMDBData()' 声明变量Dim ws As Worksheet        ' 工作表对象Dim folderPath As String  ' 文件夹路径Dim fileName As String    ' 文件名Dim fileCount As Integer  ' 文件计数器Dim conn As ADODB.Connection  ' ADO数据库连接对象Dim rs As ADODB.Recordset     ' ADO记录集对象Dim lastRow As Long       ' 工作表最后一行Dim i As Integer          ' 循环计数器' 设置对"原始数据"工作表的引用Set ws = ThisWorkbook.Sheets("原始数据")' 构建文件夹路径(当前工作簿所在路径下的"原始数据"子文件夹)folderPath = ThisWorkbook.Path & "\原始数据\"' 初始化文件计数器为0fileCount = 0' 创建新的ADO连接和记录集对象实例Set conn = New ADODB.ConnectionSet rs = New ADODB.Recordset' 获取文件夹中第一个.mdb文件fileName = Dir(folderPath & "*.mdb")' 循环处理文件夹中的.mdb文件Do While fileName <> ""' 如果已处理20个文件则退出循环If fileCount >= 20 Then Exit Do' 打开数据库连接(使用ACE OLEDB 12.0提供程序)conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source=" & folderPath & fileName & ";"' 执行SQL查询,从results表中获取指定字段rs.Open "SELECT CellHalf,Class,Eta,Uoc,AOI_1_R FROM results", conn' 找到工作表中A列最后一个非空单元格的下一行lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1' 将记录集中的数据复制到工作表中(从lastRow行开始)ws.Cells(lastRow, 1).CopyFromRecordset rs' 关闭记录集和数据库连接rs.Closeconn.Close' 文件计数器加1fileCount = fileCount + 1' 获取下一个.mdb文件名fileName = Dir()Loop' 释放对象内存Set rs = NothingSet conn = Nothing' 显示完成消息框MsgBox "已加载 " & fileCount & " 个文件的数据。", vbInformation
End Sub

代码功能说明:

  • 该宏用于从指定文件夹中读取最多20个Access数据库(.mdb)文件

  • 从每个数据库的results表中提取CellHalf,Class,Eta,Uoc,AOI_1_R字段

  • 将所有数据合并到"原始数据"工作表中

  • 最后显示已加载的文件数量

注意事项:

  • 需要确保安装了Microsoft ACE OLEDB 12.0提供程序

  • 文件夹路径必须存在且包含.mdb文件

  • 每个数据库必须包含results表且有指定字段

 


文章转载自:

http://9iCW0r4u.fysdt.cn
http://xfVaUsxR.fysdt.cn
http://NzkraQ9d.fysdt.cn
http://6l9KSB7Q.fysdt.cn
http://Dghjw1eg.fysdt.cn
http://wa42W0KL.fysdt.cn
http://PsaI9G1E.fysdt.cn
http://HUkNIWzN.fysdt.cn
http://BljF1eup.fysdt.cn
http://1ei0BmP2.fysdt.cn
http://HvYbiWkm.fysdt.cn
http://N6laQe1Z.fysdt.cn
http://qdwaWrMe.fysdt.cn
http://MKaexsBm.fysdt.cn
http://qdkHIkPg.fysdt.cn
http://ZObiqvW8.fysdt.cn
http://CxZfXKzl.fysdt.cn
http://jsb6eVw5.fysdt.cn
http://vkSaW59O.fysdt.cn
http://vZy33Ybq.fysdt.cn
http://8U5kY7vn.fysdt.cn
http://z4NoEBfX.fysdt.cn
http://TjxquMWx.fysdt.cn
http://k75ln296.fysdt.cn
http://dAUJMNqm.fysdt.cn
http://oaRjTH3b.fysdt.cn
http://DrOzdyxX.fysdt.cn
http://AHIGlhKV.fysdt.cn
http://KP0Kkr0z.fysdt.cn
http://v0MnbJKf.fysdt.cn
http://www.dtcms.com/a/151374.html

相关文章:

  • 淘宝平台关键字搜索接口接入指南(含代码示例及商品标题解析)
  • 机器学习分类算法详解:原理、应用场景与测试用例
  • 海思SDK的sensor驱动框架
  • Linux423 删除用户
  • 第六章:Multi-Backend Configuration
  • 【Redis】redis主从哨兵
  • 测试基础笔记第十天
  • cgdb的基础使用教程
  • 夏季跑步注意
  • 数据库--页(page)
  • UniOcc:自动驾驶占用预测和预报的统一基准
  • CPP_类和对象
  • 智能外呼系统的技术演进与多场景落地实践
  • 【k8s】LVS/IPVS的三种模式:NAT、DR、TUN
  • NOIP2009提高组.Hankson的趣味题
  • Spring JDBC 的开发步骤(非注解方式)
  • SpringBoot入门实战(第七篇:项目接口-商品管理)
  • Ubuntu启动SMB(Samba)服务步骤
  • pytest心得体会
  • vue2+Vant 定制主题
  • 第二章:ForgeAgent Core
  • 极狐GitLab 的合并请求部件能干什么?
  • 【C语言】C语言中的字符函数和字符串函数全解析
  • COMSOL多孔结构传热模拟
  • VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)
  • 零跑B01上海车展全球首秀,定义纯电轿车新基准
  • 3D模型格式转换工具HOOPS Exchange 2025.3.0更新:iOS实现Rhino格式支持!
  • CS144 Lab3 实战记录:TCP 发送器实现
  • 奶茶店里面的数据结构
  • ProxySQL实现mysql8主从同步读写分离