将记录集(DAO 或 ADO)移动到 table 中的更快方法

Faster way to move a recordset (DAO or ADO) into a table

我是 Whosebug 的新手,不是编码专家。我创建了一个 VBA sub 以在不到一秒的时间内将制表符分隔的文件(160k 条记录,大约 20 列)加载为记录集(Recordset.Open 方法)。

然后我需要将其移至 MS Access 2013 table 以进一步处理多个查询。如果我 运行 将 DoCmd.Import 方法转换为 table 大约需要 1000 秒(x2000 长)

有没有办法将记录集中的所有记录移动到 table(存在或不存在),然后遍历整个记录集并一次追加一条记录?

谢谢

考虑直接从 Access 查询中查询 text file,您在其中查询包含文本文件的文件夹,文件上带有句点限定符。这是 Jet/ACE SQL 引擎的独特功能(在其他数据库中不兼容)。您可能需要在与制表符分隔文件相同的目录中创建一个 schema.ini 文件以正确定义分隔格式:

Schema.ini (保存在与标签文件相同的文件夹中;如果没有这个,所有数据都在一列中)

[myTabFile.txt]
ColNameHeader=True
CharacterSet=65001
Format=TabDelimited         

附加查询

INSERT INTO myCurrentTable (Col1, Col2, Col3, Col4, Col5)
SELECT t.Col1, t.Col2, t.Col3, t.Col4, t.Col5
FROM [text;HDR=Yes;FMT=Delimited;Database=C:\Path\To\Text\File].myTabFile.txt t;

制作-Table查询

SELECT t.Col1, t.Col2, t.Col3, t.Col4, t.Col5
INTO myNewTable
FROM [text;HDR=Yes;FMT=Delimited;Database=C:\Path\To\Text\File].myTabFile.txt t;