vba导入excel数据到access
时间: 2023-10-22 08:05:22 浏览: 112
利用VB将EXCEL中的数据导入ACCESS
4星 · 用户满意度95%
以下是使用 VBA 将 Excel 数据导入 Access 数据库的示例代码:
```
Sub ImportExcelToAccess()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim strPath As String
Dim xlApp As Excel.Application
Dim xlWorkbook As Excel.Workbook
Dim xlWorksheet As Excel.Worksheet
Dim lngRow As Long
Dim lngCol As Long
'设置 Access 数据库路径和文件名
strPath = "C:\MyDatabase.accdb"
'创建 Excel 应用程序对象
Set xlApp = New Excel.Application
'打开 Excel 文件
Set xlWorkbook = xlApp.Workbooks.Open("C:\MyExcelFile.xlsx")
'选择要导入的 Excel 工作表
Set xlWorksheet = xlWorkbook.Worksheets("Sheet1")
'连接 Access 数据库
Set db = OpenDatabase(strPath)
'创建新的记录集对象
Set rs = db.OpenRecordset("MyTable", dbOpenDynaset)
'循环遍历 Excel 行和列,并将数据插入到 Access 数据库中
For lngRow = 2 To xlWorksheet.UsedRange.Rows.Count
'构造 SQL 语句
strSQL = "INSERT INTO MyTable (Field1, Field2, Field3) VALUES ("
For lngCol = 1 To xlWorksheet.UsedRange.Columns.Count
strSQL = strSQL & "'" & xlWorksheet.Cells(lngRow, lngCol).Value & "', "
Next lngCol
strSQL = Left(strSQL, Len(strSQL) - 2) & ")"
'执行 SQL 语句
db.Execute strSQL
Next lngRow
'关闭记录集和数据库连接
rs.Close
db.Close
'关闭 Excel 文件和应用程序
xlWorkbook.Close
xlApp.Quit
'释放对象引用
Set rs = Nothing
Set db = Nothing
Set xlWorksheet = Nothing
Set xlWorkbook = Nothing
Set xlApp = Nothing
End Sub
```
在此示例中,我们假设 Excel 文件中的数据位于第一个工作表上,并且第一行是列标题。我们将数据插入到名为 "MyTable" 的 Access 表中,该表包含三个字段:Field1、Field2 和 Field3。您需要将代码中的路径和表和字段名称替换为您自己的值。
阅读全文