我需要将一行数据从Excel工作表导入Access数据库表 我已预先配置了数据行,以便单元格对应于Access表中的字段。数据已被命名为范围 使用Access GUI,我可以附加一个表格,它为我提供了导入范围而不是表格的选项 有没有办法通过VBA做到这一点?
答案 0 :(得分:0)
是的,实际上有......不止一种方式。我可能会在Access VBA宏中执行类似的操作。首先使用COM自动化打开Excel工作簿:
Dim xl As Object
Set xl = CreateObject("Excel.Application") 'open Excel
Dim wb as Object, ws as Object
Set wb = xl.WorkBooks.Open("c:\mypath\myfile.xlsx") 'open WorkBook
Set ws = wb.worksheets("My Sheet") 'Select WorkSheet
然后从您指定的范围中获取数据。
Data1 = ws.Range("myRangeName").Cells(1,1)
Data2 = ws.Range("myRangeName").Cells(1,2)
Data3 = ws.Range("myRangeName").Cells(1,3)
Data4 = ws.Range("myRangeName").Cells(1,4)
然后在插入Access SQL语句之前根据需要执行任何所需的数据操作(例如,格式化日期,处理特殊字符)。最后,使用SQL字符串插入数据。
qs = "INSERT INTO MyTable (Field1,Field2,Field3,Field4) VALUES ('" & Data1 & "','" & Data2 & "','" & Data3 & "','" & Data4 & "');"
CurrentDb.Execute qs
此示例假定所有字段都将接收字符串数据。