【问题标题】:Create comma separated file (csv) from access - scheduled daily from windows从访问创建逗号分隔文件 (csv) - 每天从 Windows 安排
【发布时间】:2012-11-09 01:17:22
【问题描述】:

我想创建一个 vbs 文件来导出 csv 文件中的访问表(逗号分隔)。 我从 Remou 那里看到了这个结尾。它有效,但它创建标签分隔。谁能帮我? 谢谢!

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

【问题讨论】:

    标签: vba ms-access vbscript


    【解决方案1】:

    创建标准的 CSV 并不难

    Set cn = CreateObject("ADODB.Connection")
    
    cn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=z:\Docs\test.accdb"
    
    sSQL = "select * into " 
    sSQL= sSQL & "[text;database=z:\docs\;FMT=Delimited;HDR=Yes].[csvfile.csv]"
    sSQL= sSQL & " from table1"
    
    cn.Execute sSQL
    

    一个 VBScript 文件可以从任务计划程序中很好地运行。

    编辑re cmets

    如果您的语言环境中的小数分隔符是逗号,您可能会遇到问题。您可以使用 schema.ini 文件覆盖 Windows 区域设置,您只需要包含文件的名称和要更改的项目:

    [csvfile.csv]
    DecimalSymbol=.
    

    完整列表可从 Microsoft 获得:Schema.ini

    没有理由不应该在导出之前在代码中编写 schema.ini,除非确保不要覆盖现有架构 - 您可以追加。

    您将从 Windows 控制面板获得有关系统区域设置的信息:http://windows.microsoft.com/en-IE/windows7/Change-the-system-locale

    【讨论】:

    • 感谢您的快速答复。我试过了,但我收到以下错误“文本文件规范字段分隔符匹配小数分隔符或文本分隔符”。
    • 你有一个 schema.ini 来重新映射分隔符吗?您的语言环境是否使用逗号作为小数分隔符?如果是前者,把schema.ini中的文件名去掉,如果是后者,就需要做决定了。 CSV 表示逗号分隔值,因此逗号是文件的组成部分。您的选择是使用 schema.ini 文件重新映射小数分隔符以停止 (.) 或引用所有数字。我推荐第一个选项。我可以帮你解决这个问题,你说你想走哪条路。
    • 谢谢!我没有使用 vb,所以我从未创建过模式。我是一名 PHP 开发人员 :) 我认为 schema.ini 是最好的选择,但是我在哪里可以看到,默认的格式化程序是什么?你能给我看一个例子 schema.ini 吗?最好的问候。
    猜你喜欢
    • 1970-01-01
    • 2017-02-09
    • 2014-12-31
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    相关资源
    最近更新 更多