VBA中使用ADO把Excel中工作表导入Access中

原由:

  在学习VBA的ADO功能时,经常需要把Excel中的数据导入Access中;实现这样的方法有很多种:

  1),使用Access的导入功能直接实现;

  2),使用ADO的Recordset对象实现,不过由于Access中没有Excel中的表,需要创建表,需要设计表的结构,很繁琐。

  在学到SQL查询语句,Select查询生成表功能后,突发奇想,能否利用Select查询生产表功能实现呢。先测试一下代码:

  

Sub ADO连接Excel和Access生成表查询()
   Dim con As New ADODB.Connection
   With con
      .Provider = "Microsoft.ACE.OLEDB.12.0"
      .Open ThisWorkbook.Path & "\学生管理.accdb"
   End With
   Dim sql As String
   sql = "select * into 数据 from [" & ThisWorkbook.Path & "\数据.xlsx" & "].[数据$]"
   con.Execute sql
   con.Close
   Set con = Nothing
End Sub

  运行代码后提示不可识别的数据库格式。查询资料后原代码改为以下:

Sub ADO连接Excel和Access生成表查询()
   Dim con As New ADODB.Connection
   With con
      .Provider = "Microsoft.ACE.OLEDB.12.0"
      .Open ThisWorkbook.Path & "\学生管理.accdb"
   End With
   Dim sql As String
   sql = "select * into 数据 from [Excel 12.0;Database=" & ThisWorkbook.Path & "\数据.xlsx" & "].[数据$]"
   con.Execute sql
   con.Close
   Set con = Nothing
End Sub

  自此,功能实现。

 

上一篇:leecode runtime error: member access within misaligned address 0xbebebebebebebeb报错


下一篇:简单实用Shell命令汇总