我有一个访问数据库,并进行了查询。我需要将其自动化,以便每天晚上此查询可以运行并导出到制表符分隔的 csv 文件。无法从访问权限内将查询导出到 csv 文件。我的问题是,是否有任何工具可以选择某些表,或者对 mdb 文件执行 sql 查询,然后导出到 csv 文件?
user1253538
问问题
3976 次
3 回答
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
于 2008-11-11T13:44:43.020 回答
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 ()
于 2008-11-11T14:06:47.937 回答
-1
SQL Server Integration Services 能够完成您所说的转换。不要被名称所迷惑,因为您不需要 SQL Server 来自动化和运行包。
于 2008-11-11T13:45:44.500 回答