之前讲过利用SQL语句向Access数据库中插入一条数据,这节来讲下怎样向数据库中批量插入数据。

现在我的Excel表中的有一个学生信息表,有99条数据,现在我要将这99条数据一次性插入Access数据库中的学生信息表中,先看代码

Sub 插入数据表格()

Dim cnn As Object, rs As Object, SQL$, mypath

Set cnn = CreateObject("adodb.connection")

mypath = ThisWorkbook.Path & "\学校管理.accdb"

On Error Resume Next

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & mypath

SQL = "select * from [Excel 12.0;Database=" & ThisWorkbook.FullName & "].[" & ActiveSheet.Name & "$" & [a1].CurrentRegion.Address(0, 0) _

& "]"

SQL = "insert into 学生信息 " & SQL

cnn.Execute SQL

cnn.Close

Set cnn = Nothing

End Sub

其他地方没有什么,主要是在SQL语句的书写上。为了便于理解我这将SQL语句分成了两部分,先看第一部分"select * from [Excel 12.0;Database=" & ThisWorkbook.FullName & "].[" & ActiveSheet.Name & "$" & [a1].CurrentRegion.Address(0, 0)  & "]",这句代码和我们之前以Excel为例讲解select语句的时候非常像,其实这句就是将当前的Excel当成数据库,将其中的数据全部提取出来,这句翻译出来就是“select * from [Excel 12.0;Database=C:\Users\Administrator\Desktop\ACCESS数据库\数据.xlsm].[Sheet1$A1:J100]”,然后第二句"insert into 学生信息 " & SQL就是将第一部分SQL筛选出来的数据整个插入到学生信息表中。

更多推荐

vba 批量导入mysql_SQL向数据库中批量插入数据 | VBA实例教程