【问题标题】:excel ace.oledb vba connection to csv returning only first columnexcel ace.oledb vba 连接到 csv 只返回第一列
【发布时间】:2021-01-22 13:01:33
【问题描述】:

在 VBA Excel (Office 365) 中,使用"Provider=Microsoft.ACE.OLEDB.12.0;data source=..." 之类的连接字符串并使用命令字符串SELECT * FROM [text;HDR=Yes;FMT=Delimited;Delimiter=';';database=KKS].[kks.csv];,结果为: 当 CSV 源看起来像这样时:

rng;key;component;
"0";"A";"Grid and distribution systems";
"0";"B";"Power transmission and auxiliary power supply";

schema.ini 是:

[kks.csv]
ColNameHeader=True
Format=CSVDelimited
Decimalsymbol=(,)
Delimiter=(;)

我已经尝试了连接字符串和 schema.ini 的任何组合(也完全删除它),结果充其量是相同的。有什么建议吗?谢谢!

【问题讨论】:

  • 我建议您发布连接和检索数据的完整代码。大概Schema文件与csv在同一个文件夹中?
  • 代码简化如下: ` Set oCn = CreateObject("ADODB.Connection") Set oRs = CreateObject("ADODB.Recordset") oRs.cursorlocation = 2 '// 1 = adUseNone; 2 = 广告使用服务器; 3 = adUseClient ` and next:整个连接字符串如下所示:sCnStr = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Application.ActiveWorkbook.Path() & "\" & Application.ActiveWorkbook.name() & ";" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES"";" then `Call oRs.Open(sCdStr, oCn, -1, 1) ` 这一定没问题。非常感谢!
  • 注意:我不想更改 Recordset.Open() 的参数 - 是一个工作代码,基本上不能修改。该解决方案必须仅适用于连接字符串和 schema.ini。谢谢!

标签: sql excel vba csv


【解决方案1】:

如下更改 Schema.ini。

[kks.csv]
Format = Delimited(;)

【讨论】:

  • 这是。现在它起作用了。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
  • 1970-01-01
  • 2015-10-02
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多