gpt4 book ai didi

ms-access - 在 VBS 中使用 Access DoCmd.TransferText acExportDelim 将 txt 导出到 csv

转载 作者:行者123 更新时间:2023-12-04 05:33:55 27 4
gpt4 key购买 nike

我有大量 .txt 文件(>60k)需要转换为分号分隔的 .csv(因为某些字段是带逗号的列表),以便我可以将它们上传到我们的 SQL 服务器。

我已经成功编写了一个 .vbs 文件,即使不存在表,该文件也会将数据加载到 Access db 中,但我无法让 acExportDelim 覆盖/创建新文件。当 FileName.csv 不存在时,它也会出错。

一定有我遗漏的东西,但我不知道我需要从哪里开始寻找。

指令输入

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 链接到可下载文件演示。

最佳答案

这个问题是一个很好的例子,说明为什么总是包含 Option Explicit 很重要。在您的 VBScript 中,与您应该为 VBA 代码做的一样。

考虑这个 VBScript。

WScript.Echo "TypeName(acImportDelim): " & TypeName(acImportDelim)
WScript.Echo "TypeName(acExportDelim): " & TypeName(acExportDelim)

在命令窗口中运行该脚本会返回此...
C:\share\Access>cscript //NoLogo AccessNamedConstants.vbs
TypeName(acImportDelim): Empty
TypeName(acExportDelim): Empty

但包括 Option Explicit因为该脚本的第一行抛出错误,因为脚本引擎不知道 Access 命名常量,因此它假定它们必须是未声明的变量。从 Option Explicit将未声明的变量视为错误,有关于这些命名常量问题的早期警告。
C:\share\Access>cscript //NoLogo AccessNamedConstants.vbs
C:\share\Access\AccessNamedConstants.vbs(2, 1) Microsoft VBScript runtime error:
Variable is undefined: 'acImportDelim'

关于ms-access - 在 VBS 中使用 Access DoCmd.TransferText acExportDelim 将 txt 导出到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com