有没有办法成批的向数据库ACCESS中导入Excel数据?

有很多个Excel表格,例如1.xls,2.xls...n.xls,具有相同的格式,已知道可以一个一个个导入ACCESS,然后SQL合成到一张表,但效…
关注者
22
被浏览
78,980
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

Excel导出数据到Access数据库或Access导入Excel工作表数据的几种方法汇总

Access与Excel的数据导入导出是我们经常要使用的功能。下面就列出我们常用的三种方法

一、直接使用Insert Into SQL语句,将EXCEL表数据导入到指定的数据库的指定表中

具体的工作表名 数据表名 以及相应的路径大家可按需修改

Dim cnn As ADODB.cnnection
Dim strSql As String
Set cnn = New ADODB.cnnection
cnn.cnnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0;Data Source= d:\客户.xls;;Extended Properties='Excel 8.0;HDR=YES;IMEX=1' "
’如果是Access 2010 2013 2016 2019 或以上  连接字符串可改为:Provider=Microsoft.ACE.OLEDB.12.0;
cnn.Open
If cnn.State = adStateOpen Then
    strSql = "Insert Into 客户表 Select * From  [Excel 8.0;Database=d:\test.xls].[Sheet1$]"
    Cnn.Execute strSql
    MsgBox "已成功插入数据到Access中", , "Office中国"
    cnn.Close
End If
Set cnn = Nothing
End Sub


二、使用ADO Recordset记录集 将Excel数据插入到Access数据库指定表中

Dim cnn As New ADODB.cnnection
Dim rs As New ADODB.Recordset
Dim strCon As String
strCon = "provider=Microsoft.jet.OLEDB.4.0;Data Source=d:\客户.mdb;" 
cnn.Open strCon
rs.Activecnnection = cnn
rs.LockType = adLockOptimistic
rs.Open "客户表"
Dim sht As Worksheet
Dim lngRow  As Long
Set sht = ThisWorkbook.Sheets("Sheet1") 
For lngRow = 2 To 100  '从第2行--100行的数据
rs.AddNew
rs!客户ID = sht.Cells(lngRow, 1) 
rs!客户名 = sht.Cells(lngRow, 2)
rs!客户地址= sht.Cells(lngRow, 3)
rs.Update
Next lngRow
MsgBox "Access导入Excel数据完成!",,"小辣椒高效Office"