我需要使用VBScript将数据库从DB Access 2007导出到带有 ;
的分隔txt文件。
我的代码如下:
Set accDB = CreateObject("Access.Application")
accDB.visible = true
accDB.automationsecurity = 1
accDB.OpenCurrentDatabase("D:\Users\db2015.mdb")
accDB.DoCmd.TransferText acExportDelim, ";", "tb2015", "D:\Users\tb2015.txt", False
accDB.CloseCurrentDatabase
accDB.Quit
Set accDB = Nothing
但我有错误:找不到tb2015.txt
我尝试在我的代码中添加:
accDB.DoCmd.OpenQuery "SelectQuery", acNormal, acEdit
accDB.DoCmd.OutputTo acOutputTable, "tb2015", "txt", "D:\Users\tb2015.txt"
在这种情况下,我没有错误,但tb2015.txt的分隔符为 |
,而不是 ;
请帮帮我。
提前谢谢。
编辑#1
这是新代码,但我有错误:
Set accDB = CreateObject("Access.Application")
accDB.visible = true
accDB.automationsecurity = 1
accDB.OpenCurrentDatabase("D:\Users\db2015.mdb")
Const acExportDelim = 2
accDB.DoCmd.TransferText acExportDelim, , "tb2015", "D:\Users\tb2015.txt", False
accDB.CloseCurrentDatabase
accDB.Quit
Set accDB = Nothing
编辑#2
解决方案是这段代码:
Const acExportDelim = 2
Set accDB = CreateObject("Access.Application")
accDB.visible = true
accDB.automationsecurity = 1
accDB.OpenCurrentDatabase("D:\Users\db2015.mdb")
accDB.DoCmd.OpenQuery "myView", acNormal, acEdit
accDB.DoCmd.TransferText acExportDelim, "tb2015", "tb2015", "D:\Users\tb2015.txt"
accDB.CloseCurrentDatabase
accDB.Quit
Set accDB = Nothing
答案 0 :(得分:0)
这里发生的是:
VBScript不知道acExportDelim
,因此它被解释为未知变量,值为0.
在DoCmd.TransferText
,0 = acImportDelim
。
因此它尝试导入tb2015.txt,并且您收到“找不到文件”错误。
从Access对象目录中复制Const acExportDelim = 2
,并将其添加到您的脚本中。并删除“;” SpecificationName参数。
注意:acOutputTable = 0
,这就是你的DoCmd.OutputTo
运行(偶然)的原因。
为避免此类错误,请将Option Explicit
添加到脚本的顶部,它会强制执行变量声明。