将 MySQL 表导出到 .csv 文件
Posted
技术标签:
【中文标题】将 MySQL 表导出到 .csv 文件【英文标题】:Exporting MySQL table to .csv file 【发布时间】:2014-01-14 22:31:17 【问题描述】:这是我使用 VBA 的第一天。我正在尝试使用 VBA 中的 mysql 查询在 MS Access 中导出 .csv 文件。我试过使用这段代码:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sql As String
Set db = CurrentDb
sql = "SELECT wo_id FROM WorkOrder"
Set rs = db.OpenRecordset(sql)
DoCmd.TransferText acExportDelim, , "rs", "C:\export.csv", True
rs.Close
Set rs = Nothing
这给了我:
运行时错误“3011”:
Microsoft Office Access 数据库引擎找不到对象“rs”。确保对象存在并且正确拼写其名称和路径名
更多信息
我有一个名为 WorkOrder 的 MySQL 表(我想从这里提取数据)。
我错过了什么?
【问题讨论】:
***.com/questions/14700192/… 【参考方案1】:您只能使用DoCmd.TransferText
导出 MS-Access 对象(表或查询)。如果您有一个名为 qryOutput
的查询,您可以将其导出:
DoCmd.TransferText acExportDelim, , "qryOutput", "C:\export.csv", True
您可以在运行时创建查询(使用db.CreateQueryDef
),将其导出并删除。
如果你正在使用 MySQL,也许直接从命令行导出数据会更容易:
c:\> mysql -h YourHost -u YourUser -pYourPassword dbYourDatabase -e"SELECT wo_id FROM WorkOrder" > c:\export.txt
这将使用您的查询结果(包括标题)创建一个制表符分隔的文本文件。
在类 Unix 命令行上,您可以使用 sed
将此输出即时转换为逗号分隔的文本文件:
$ mysql [connectionParameters] -e"select..." | sed 's/\t/,/g' > export.csv
我不知道是否有任何纯 Windows 命令行实用程序来执行此操作。我使用Cygwin 处理这类事情。如果要使用,请务必使用 Cygwin 安装程序安装sed
。
希望这会有所帮助。
【讨论】:
以上是关于将 MySQL 表导出到 .csv 文件的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 将多个表中的特定字段导出到一个 csv 文件中?创建表输出