VBA Access将数据集中的所有列插入访问表

Posted

技术标签:

【中文标题】VBA Access将数据集中的所有列插入访问表【英文标题】:VBA Access insert all columns from dataset into access table 【发布时间】:2014-02-21 02:19:31 【问题描述】:

我正在将数据从 SQL SP(它返回一个表)复制到一个访问表中。 我正在使用 CurrentDb.Execute "INSERT Into..." 一切正常,但是有没有办法将 Recordset 中的所有列插入到表中?目前我输入每个列名,但我有很多列。 谢谢

【问题讨论】:

如果表中的列与源中的列的类型和顺序相同,则它应该可以工作。最好的测试方法就是尝试一下。 Albert 在他的answer to your earlier question 中向您展示了如何做到这一点。 【参考方案1】:

如果 SQL Server 表中的列名与 Access 中的列名匹配,是的,这很容易做到。 如果列名不同,但您愿意设计查询并命名字段,也很容易。

StrSQL = "Select * from MyTable;"
rsIN.Open ..... strSQL
rsOUT.Open .... Table Name
Do While not rsIN.EOF
    rsOUT.AddNew
    for each fld in rsIN.Fields
        rsOUT.field(fld.name) = rsIN.Field(fld.name)
    Next fld
    rsOUT.Update
    rsIN.MoveNext
Loop
rsIN.Close...... etc, etc,

【讨论】:

以上是关于VBA Access将数据集中的所有列插入访问表的主要内容,如果未能解决你的问题,请参考以下文章

如何在access vba中的记录集中设置列值

Access 2013 - VBA - 记录集插入获取 ID

将数组加载到记录集中以循环以增加值 vba 访问

使用VBA将VBA模块从Access项目导出到Excel项目

大型记录集 (VBA) 的 MS Access 插入慢

如何在 MS Access VBA 上将文本框注释值输入设置为表格数据插入