我有一个访问数据库,并进行了查询。我需要自动化它,以便每晚可以运行此查询并导出到制表符分隔的csv文件。无法从访问中将查询导出到csv文件。我的问题是,是否有任何工具可以选择某些表,或在mdb文件上执行sql查询,并导出到csv文件?
答案 0 :(得分:3)
VBScript在Jet引擎上运行良好。但是,我不明白为什么你说“无法从访问中将查询导出到csv文件。”
Sub TransferCSV()
DoCmd.TransferText acExportDelim, , "PutNameOfQueryHere", "C:\PutPathAnd\FilenameHere.csv", True
End Sub
是VBA的常用方式。
编辑: 可以从命令行运行VBScript文件(.vbs)。下面是一些示例VBScript,用于输出制表符分隔文件。
db = "C:\Docs\LTD.mdb"
TextExportFile = "C:\Docs\Exp.txt"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source =" & db
strSQL = "SELECT * FROM tblMembers"
rs.Open strSQL, cn, 3, 3
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.CreateTextFile(TextExportFile, True)
a = rs.GetString
f.WriteLine a
f.Close
答案 1 :(得分:3)
实际上,您可以从Access中将查询导出到csv文件。
您可以使用TransferText方法使用宏执行此操作。
宏:
Name = ExportQuery
Action = TransferText
Transfer Type = Export Delimited
Table Name = [name of your Access query]
File Name = [path of output file]
Has Field Names = [Yes or No, as desired]
您可以从命令行执行宏,如下所示:
"[your MS Office path]\msaccess.exe" [your databse].mdb /excl /X ExportQuery /runtime
由于您在宏中遇到TransferText问题,请尝试以下方法:
1)创建一个名为“ExportQuery”的模块。在此模块中,创建一个名为“ExportQuery”的函数:
Function ExportQuery()
DoCmd.TransferText acExportDelim, , "[your query]", "[output file].csv"
End Function
2)创建一个名为RunExportQuery的宏:
Action = RunCode
Function Name = ExportQuery ()
答案 2 :(得分:-1)
SQL Server Integration Services能够执行您正在讨论的转换。不要被名称所迷惑,因为你不需要SQL Server来自动化和运行包。