您的位置 首页 > 娱乐休闲

将Excel文件里的表格数据保存到现有的Access数据库里

将Excel文件里的表格数据保存到现有的Access数据库里

虽然,Excel文件本身可以视为一个微型的数据库,在提取数据时应付简单条件的查询完全没有问题,如果涉及到复杂条件的数据查询,用Excel文件来储存大量数据就会效率低下很多,而且当Excel文件很大的时候,对其他系统资源和内存开销也是一种压力。

通常都是把数据保存到规模更大一点的数据库,比如Access,My SQL,SQL Server,DB2,Oracle等数据库。那么这次就讨论一下,当我们选择Access数据库来保存生产数据时,如何把Excel文件的表格数据导入到Access中,这在现实应用场景中也是会经常出现的。

下面我们就详细研讨一下,如何利用VBA程序把Excel里的数据保存到现有Access数据库中。假设 我们现有一个名为“准备导入数据”的Excel文件,它里面的Sheet1工作表里有学生成绩数据,需要把这些学生成绩数据导入到一个名为“学生成绩”的Access数据库里的名为“成绩汇总”的表中。

在实现上述任务过程中,我们需要利用到ADO对象,SQL语句,For-Next语句,利用循环结构把成绩数据逐条导入到Access里面。在开始编码之前,首先要在VBA工程里添加项目库 Microsoft Access 14.0 Object Library的引用。笔者的工作环境是 Win7 64位操作系统+Office2010套件,如果感兴趣的朋友的Office版本有所不同,请选择对应版本的库文件来引用。

编码之前准备工作截图如下:

程序执行后结果截图如下:

完整实现代码如下:

Public Sub Excel数据导入Access()

Dim mydata As String, myTable As String, SQL As String

Dim cnn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim rsx As ADODB.Recordset

Dim i As Long, n As Long

mydata = T & "\学生成绩.accdb"

myTable = "成绩汇总"

n = Sheets("Sheet1").Range("A65536").End(xlUp).Row

Set cnn = New ADODB.Connection

cnn.Open "Provider=Micro;Data Source =" & mydata & ""

MySQL = "select * from " & myTable

Set rs = New ADODB.Recordset

rs.Open mysql, cnn, adOpenKeyset, adLockOptimistic

For i = 2 To n

SQL = "select * from " & myTable & " where 姓名='" & Cells(i, 1).Value & "' "

Set rsx = New ADODB.Recordset

r SQL, cnn, adOpenKeyset, adLockOptimistic

If r = 0 Then

r

For j = 1 To r

r(Cells(1, j).Value) = Cells(i, j).Value

Next j

r

Else

For j = 2 To r

r(j - 1) = Cells(i, j).Value

Next j

r

End If

Next i

MsgBox "数据保存完毕!", vbInformation + vbOKOnly

rs.Close

cnn.Close

Set rs = Nothing

Set rsx = Nothing

Set cnn = Nothing

End Sub

说明:此处笔者创建的数据库是没有密码的,如果感兴趣的朋友在实现时,设置了Access访问密码,需要在连接语句里把密码放进来。此外,如果在数据表里已经存在某个学生的成绩,此时程序会自动覆盖之前保存的数据。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“vb如何保存图片到数据库,vb如何将图片保存”边界阅读