【问题标题】:import named range from excel to access从 excel 导入命名范围以访问
【发布时间】:2016-01-26 20:55:25
【问题描述】:

我需要将一行数据从 Excel 工作表导入到 Access 数据库表中。
我已经预先配置了数据行,以便单元格对应于 Access 表中的字段。数据已被命名为一个范围。
使用 Access GUI,我可以附加一个表,它让我可以选择导入一个范围,而不是一个表。
有没有办法通过 VBA 做到这一点?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    是的,实际上……不止一种方法。我可能会在 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
    

    此示例假设所有字段都将接收字符串数据。

    【讨论】:

    • 感谢您的信息。这看起来正是我想要做的。