在ACCESS中用VBA代码直接读取Excel表中的数据_vba 从access 获取数据到 工作表-程序员宅基地

技术标签: 经验分享  笔记  

在Microsoft Access中,可以使用ADODB对象来连接Excel表并读取其中的数据。下面是一个基本的示例,说明如何实现这一点:

首先,你需要创建一个ADODB.Connection对象,然后使用该对象的 Open 方法打开一个到Excel文件的连接。一旦连接被打开,你就可以使用Recordset对象来读取数据。
实例Excel表和Access数据库保存在同一个文件夹内,Excel表的名字为“作业人员职业病.xlsx”
以下是详细步骤:

  1. 添加ADO库。
    在Visual Basic编辑器中选择【工具】->【引用】选项,打开【引用-VABProject】对话框,在列表框中选中【Microsoft ActiveX Data Objects 6.x Library】复选框。
  2. 然后,创建ADODB.Connection对象:
Dim conn As New ADODB.Connection
dim i,j as integer
  1. 使用Open方法连接到Excel文件:
j=0
strPath = CurrentProject.Path
pool: conn.Open "Provider= Microsoft.ACE.OLEDB.12.0;" & _
          "Extended Properties='Excel 12.0 Xml; HDR=Yes';" & _
          "Data Source= " & strPath & "\作业人员职业病.xlsx"
j=j+1

语句中HDR=yes,表示Excel表中第一行是列名而不是真正的数据。
4. 创建一个ADODB.Recordset对象来访问数据。

Dim rs As New ADODB.Recordset
Dim strSQL As String
strSQL = "select * from [上岗和离岗$] where 年龄>=35"
rs.Open strSQL, conn, adOpenKeyset, adLockOptimistic

注意:Excel工作表名后一定要后缀$符号。上述语句将获取工作表中所有年龄大于等于35岁的人员的数据。
5. 通过循环遍历Recordset对象,读取目标数据插入到数据库的指定表中。

rs.MoveFirst
If conn.State = adStateOpen Then
    For i = 1 To rs.RecordCount
        strInsertSQL = "insert into 体检登记表_大龄 (姓名, 性别, 身份证号, 年龄, 部门, 岗位, 体检日期) " & _
                       "values ('" & rs(1) & "', '" & rs(2) & "', '" & rs(3) & "', '" & rs(4) & "', '" & rs(6) & "', '" & rs(7) & "', #2022-07-28#)"
        DoCmd.SetWarnings False
        DoCmd.RunSQL strInsertSQL
        DoCmd.SetWarnings True
        If i < rs.RecordCount Then rs.MoveNext
    Next
Else
    If j < 5000 Then
        GoTo pool
    Else
        MsgBox "长时间无法打开与Excel表的连接,请确认网络连接是否正常,然后重新执行数据导入", vbCritical, "提示"
        Exit Sub
    End If
End If
MsgBox "已经从源Excel表中读取" & rs.RecordCount & "条记录,并写入本项目的“体检登记表_大龄”表中"
  1. 最后,不要忘记关闭连接和Recordset
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Foresttu/article/details/133673281

智能推荐

CiteSpace使用入门教程_citespace怎么用-程序员宅基地

文章浏览阅读8.1k次,点赞4次,收藏17次。CiteSpace软件的使用及应用_citespace怎么用

这6种最佳移动自动化测试工具你知道吗?_移动应用测试工具有哪些-程序员宅基地

文章浏览阅读1k次。它还带有一个客户端库的特性,可以托管 Java、Python、C# 等中的锅炉代码,以帮助 QA 更快、更有效地开发测试脚本。testRigor 是超级可靠的,因为它为人类各自创建了一个测试套件,也就是说,它不依赖于 XPath 之类的源。它是一个基于云的移动自动化测试工具,允许用户在各种设备和操作系统版本上以连续的时间间隔快速运行测试。总而言之,它是一个很好的工具,但既不是免费的也不是开源的。ZAPTEST 的卖点是它的投资回报率计算器,它允许像您这样的企业计算这种自动化工具的投资回报率。_移动应用测试工具有哪些

分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测_nn.multiheadattention 图像分类-程序员宅基地

文章浏览阅读1.1k次,点赞21次,收藏12次。分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测_nn.multiheadattention 图像分类

对称加密、非对称加密、公钥、私钥究竟是个啥?_非对称加密,私钥公钥成对生成是啥意思-程序员宅基地

文章浏览阅读1.3w次,点赞72次,收藏247次。世界上有没有不能破解的密码或加密方式?还真有一种,叫做一次性密码本,这时唯一一种不能破解的加密方式,而其他的密码只要时间无限理论上都是可破解的,如果你也对加密这个领域感兴趣,可以简单了解下这些概念..._非对称加密,私钥公钥成对生成是啥意思

linux系统的字体文件安装_目标'usr/share/fonts/' 不是目录-程序员宅基地

文章浏览阅读1.3k次。ubuntu里新装的terminator里,字体实在是不忍直视。尤其是字母i,跟别的字母挤在一起,根本就看不清楚。所以特意下载了一个苹果的Monaco字体来代替。linux系统的字体文件放在/usr/share/fonts/目录以及用户的~/.fonts和~/.local/share/fonts目录下,第一个位置为系统所用用户共享,将字体安装到这个目录需要管理员权限;后面两个位置则为当前登陆用户..._目标'usr/share/fonts/' 不是目录

<Android> 系统编译删除不必要的Apk_android 去掉product_packages 属性-程序员宅基地

文章浏览阅读5.3k次,点赞2次,收藏8次。本文以Android 5.1的A83T octopus-f1工程为例.预装APK分为四种priv-app, preinstall, precopy, appout/target/product/octopus-f1/system/priv-app 系统默认APPout/target/product/octopus-f1/system/app 用户APPout/targe_android 去掉product_packages 属性

随便推点

Machine and Deep Learning with Python-程序员宅基地

文章浏览阅读407次。Machine and Deep Learning with PythonEducationTutorials and coursesSupervised learning superstitions cheat sheetIntroduction to Deep Learning with PythonHow to implement a neural network..._pyqtgraph eeg

QNX操作系统简介_openqnx-程序员宅基地

文章浏览阅读2.4w次,点赞17次,收藏119次。QNX是商业类Unix实时操作系统,主要针对嵌入式系统市场。该产品开发于20世纪80年代初,后来改名为QNX软件系统公司。QNX软件系统公司,黑莓公司旗下子公司,是全球领先的创新嵌入式技术供应商,包括中间件、开发工具和操作系统。QNX Neutrino实时操作系统,QNX Momentics工具套件和QNX Aviage中间件系列基于组件的架构共同构成业界可靠性和延展性最强的架构,帮助建立高性能的..._openqnx

OpenGL纹理-12.5、纹理坐标-程序员宅基地

文章浏览阅读227次。12.5、纹理坐标12.5.1 坐标定义在绘制纹理映射场景时,不仅要给每个顶点定义几何坐标,而且也要定义纹理坐标。经过多种变换后,几何坐标决定顶点在屏幕上绘制的位置,而纹理坐标决定纹理图像中的哪一个纹素赋予该顶点。并且顶点之间的纹理坐标插值与基础篇中所讲的平滑着色插值方法相同。纹理图像是方形数组,纹理坐标通常可定义成一、二、三或四维形式,称为s,..._opengl 定义纹理坐标

如何设置代理ip服务器地址_代理服务器地址-程序员宅基地

文章浏览阅读711次。代理IP服务器具有很多优点和使用场景,在未来的发展中,随着网络技术的不断进步和应用场景的不断扩展,代理IP服务器将会发挥更加重要的作用。_代理服务器地址

用伪随机生成100个大写字母和100个个位数字_vb生成100个大写字母-程序员宅基地

文章浏览阅读294次。#include#include#includeusing namespace std;void RandomCharacter();void RandomFingure();int main(void){ RandomCharacter(); cout<<

Spring / Spring boot 异步任务编程 WebAsyncTask_spring boot webasynctask-程序员宅基地

文章浏览阅读372次。Spring / Spring boot 异步任务编程 WebAsyncTask今天一起学习下如何在Spring中进行异步编程。我们都知道,web服务器处理请求request的线程是从线程池中获取的,这也不难解释,因为当web请求并发数非常大时,如何一个请求进来就创建一条处理线程,由于创建线程和线程上下文切换的开销是比较大的,web服务器最终将面临崩溃。另外,web服务器创建的处理线程从头到尾默认是同步执行的,也就是说,假如处理线程A负责处理请求B,那么当B没有return之前,处理线程A是不可以脱身去_spring boot webasynctask