在MS Access中跳过前三行CSV文件(使用DoCmd?)

时间:2013-04-30 13:21:47

标签: ms-access access-vba ms-access-2010

加载到MS Access时,我需要跳过CSV文件的前三行。默认的CSV导入不会删除前三行。我正在考虑编写一个宏来忽略前三行。

我的研究显示了DoCmd对象,但其方法不能满足丢弃前x行。

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

DoCmd.TransferText method将SpecificationName作为其参数之一。按照How to Create an Import Specification中的说明创建并保存导入规范。

现在进入“访问选项”,“导航选项”,并显示隐藏/系统对象。您现在应该能够打开名为“mSysIMEXSpecs”的表。根据SpecName列查找先前创建的导入规范。将该导入规范的“StartRow”列更改为3(StartRow从零开始)。

现在您应该可以使用DoCmd.TransferText方法传递您创建的导入规范的名称,它将跳过前三行。

答案 1 :(得分:1)

在Access VBA中,我会使用两个TextStream个对象,一个到.ReadLine原始CSV文件逐行,另一个到.WriteLine到一个临时文件,跳过第一个输入文件的三行。在Scripting.FileSystemObject上进行一些网络搜索,我相信你会找到一些示例代码。

然后我会使用DoCmd.TransferText acImportDelim将临时文件导入Access。

答案 2 :(得分:1)

Docmd.TransferText方法是一个很好的选择,但作为修改导入规范的替代方法,您可以考虑导入所有内容并在导入后进行一些验证。

所以你可以导入整个文件,然后使用删除查询从表中删除数据。

正如上面的评论中所提到的,通过系统表修改规范对于其他人来说可能很难找到 - 因为删除查询在您的代码中有一个很好的小评论可能会有效。如果需要使用它,如果没有它可以被注释掉。