我正在尝试查询文本文件,csv文件并将查询结果返回给文本文件。我尝试了这个看起来很有前途的apporoach https://stackoverflow.com/a/581638/3480717,将数据直接从SQL命令返回到文件,跳过创建记录集。 提示它可能是,我无法使它工作,这是我的版本:
Sub test()
Dim db: db = "C:\Databases\"
Dim exportFile: exportFile = "C:\Databases1\Exp.txt"
Dim cn: Set cn = CreateObject("ADODB.Connection")
cn.Open _
"Provider = Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & db & ";" & _
"Extended Properties=""text;HDR=YES;FMT=Delimited(,)"""
cn.Execute "SELECT [Surname INTO [text;HDR=Yes;Database=" & exportDirFile & _
";CharacterSet=65001] FROM PhoneList.csv"
cn.Close
End Sub
PhoneList.csv - 我的数据是带有Surname,Name和PhoneNumber的三列文件。对于测试,我试图提取PhoneNumber列。
代码在cn.Execute
上停止我收到错误消息说"无法更新。数据库或对象是只读的。
我在做什么(非常)错了?我可以访问文件/可以打开并保存它们。似乎问题出在其他地方。
VBS的外观如何? (代码不需要Excel来可视化任何东西)。
非常感谢您的评论。
答案 0 :(得分:0)
我成功了以下(在VBA和VBS中):
Dim db:db =" C:\ Users \ jkotows2 \ Desktop \ sql_script \"
Dim cn:设置cn = CreateObject(" ADODB.Connection")
cn.Open _ "提供商= Microsoft.ACE.OLEDB.15.0;" &安培; _ "数据源=" &安培; db& &#34 ;;" &安培; _ "扩展属性=""文本; HDR = YES; FMT =定界(;)"""
cn.Execute" INSERT INTO [exp.csv] SELECT [Surname],[Name],[No] FROM [PhoneList.csv]"
cn.Close