将数组写入 Access 表

Writing arrays to an Access table

提问人:Ingo 提问时间:10/30/2023 最后编辑:egleaseIngo 更新时间:10/30/2023 访问量:24

问:

在Excel VBA中,我可以轻松地将数组的内容写入与数组内容完全量身定制的范围。这样做,我可以(例如)在一瞬间将 10.000 条记录写入范围。如果我一行一行地这样做,那将需要很长时间。

这正是我在Access VBA中遇到的问题。

如果我想使用 DAO 将 10.000 个数组行写入表。Recordset 对象,需要很长时间。我使用的典型程序是这样的:

Private Sub ArrayToTable()

    Dim ArrData As Variant
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i As Integer
    
    ReDim ArrData(1 To 2, 1 To 2)
    
    'Example array
    ArrData(1, 1) = "Paul"
    ArrData(1, 2) = 27
    ArrData(2, 1) = "Helen"
    ArrData(2, 2) = 47
    
    'Open database and create a recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("tblMembers", dbOpenTable)
    
    'Loop throug the array and write back to tblMembers
    With rs
    For i = 1 To UBound(ArrData, 1)
        .AddNew
        .Fields(0) = ArrData(i, 1)
        .Fields(1) = ArrData(i, 2)
        .Update
    Next i
    End With
    
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

我乐观地认为有比这更好的方法,因为我可以一次性手动添加很多记录(开始/插入/添加),这也非常快。

所以这是我的问题:有谁知道一种一次性将数组内容插入表的方法?

我很想从您的反馈中学习。

此致敬意 **Ingo**

数组 VBA 记录集

评论

1赞 Ike 10/30/2023
您的数据来源是什么?
0赞 Tim Williams 10/31/2023
请更改 rs 的值。批量大小?查看 learn.microsoft.com/en-us/office/client-developer/access/...

答: 暂无答案