【发布时间】:2012-08-26 08:15:05
【问题描述】:
我有大量 .txt 文件 (>60k) 需要转换为以分号分隔的 .csv(因为某些字段是带有逗号的列表),以便我可以将它们上传到我们的 SQL 服务器。
我已经成功编写了一个 .vbs 文件,即使没有表存在,该文件也会将数据加载到 Access db 中,但我无法让 acExportDelim 覆盖/创建新文件。当 FileName.csv 不存在时也会报错。
一定有一些我想念的东西,但我不知道从哪里开始寻找。
CMD 输入
C:\Afolder\TxtToCsv.vbs \\DataOnaServer\FileName.txt \\DataOnaServer\FileName.csv
.vbs 文件
Dim oAccess
Set oAccess = CreateObject("Access.Application")
oAccess.OpenCurrentDatabase("C:\Afolder\WDS.accdb")
oAccess.DoCmd.TransferText acImportDelim,"FileTxtImportSpec","FileName",WScript.Arguments.Item(0),1
oAccess.DoCmd.TransferText acExportDelim,"FileCsvExportSpec","FileName",WScript.Arguments.Item(1)
oAccess.Quit
文件丢失时收到错误消息。 (好像还不能发图)
“Microsoft Access 数据库引擎无法对对象 'lp4137.csv' 进行处理。请确保对象存在并且正确拼写其名称和路径。如果 'lp4137.csv' 不是本地对象,请检查您的网络连接或联系服务器管理员。” 代码:800A0BC3
Blue Claw Database Design 链接到可下载文件演示,单击按钮 VBA 运行类似脚本。
【问题讨论】:
-
您遇到什么错误?文件是否存储在目录名称中包含空格的路径中?
-
我添加了错误信息。路径没有问题,因为 acImportDelim 指向相同的位置。
-
如果将csv保存在本地磁盘上,是否可以检查它是否有效?
-
将位置移动到 C: 上的“下载”文件夹时没有区别。如果 csv 文件丢失,也会出现同样的错误。
-
流程需要完全自主。如果 CMD 可以调用 Access 中的 VBA,那么我完全赞成。如果我手动进行,导出工作正常。我刚刚从 Blue Claw 中找到了一个运行 VBA 的文件,该文件通过按钮单击工作。所以我假设我可以只是一个运行相同命令的宏。
标签: ms-access vbscript export export-to-csv