【问题标题】:Export Excel Worksheet to Access Table (.accdb)将 Excel 工作表导出到 Access 表 (.accdb)
【发布时间】:2018-12-11 17:59:26
【问题描述】:

我在 Excel 中有一个与我的一个工作表上的命令按钮相关联的宏。单击后,我试图将工作表“FeedSamples”中的数据导出到名为“ImportedData”的 Access 数据库表中。

谁能帮助我?我从网上尝试了多个例子,但没有运气。这就是我现在所拥有的,但不断收到“运行时错误'3343':无法识别的数据库格式'filePath\FeedSampleResults.accdb

Dim db As Database
Dim rs As Recordset
Dim r As Long
Set db = OpenDatabase("filePath\FeedSampleResults.accdb")
Set rs = db.OpenRecordset("ImportedData", dbOpenTable)
r = 2
Do While Len(Worksheets("FeedSamples").Range("A" & r).Formula) > 0
    With rs
        .AddNew
        .Fields("REPTNO") = Worksheets("FeedSamples").Range("B" & r).value
        .Update
    End With
    r = r + 1
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing

完成此操作后,我需要编写代码让 Access Table 将数据导出到 dBase 文件中。

【问题讨论】:

    标签: vba excel export ms-access-2007


    【解决方案1】:

    这是使用 ADO 的代码。您需要在数据源中设置访问数据库的完整路径。

    Sub ExcelToAccessAdo()
    
        Dim cn As ADODB.Connection, rs As ADODB.Recordset, row As Long
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
                "Data Source=filePath\FeedSampleResults.accdb;"
    
        ' open a recordset
        Set rs = New ADODB.Recordset
        rs.Open "ImportedData", cn, adOpenKeyset, adLockOptimistic, adCmdTable
    
        row = 3    ' the start row in the worksheet
        Do While Not IsEmpty(Worksheets("FeedSamples").Range("A" & row))
    
            With rs
                .AddNew    ' create a new record
                .Fields("REPTNO") = Worksheets("FeedSamples").Range("A" & row).Value
                .Update
            End With
            row = row + 1
        Loop
    
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2010-09-19
      相关资源
      最近更新 更多