我正在使用ADO从Excel工作簿导入数据。我在一个工作表上遇到麻烦,其中一个列名包含一个点:" Col.1"。
我尝试了所有我发现的东西:双引号,括号,背板。什么都行不通。引发错误或查询输出" Col.1"在每一行。
QUERY_SQL = _
"SELECT `Col.1`, Col3 FROM [table$] " & _
"IN '" & SourcePath & "' " & CHAINE_HDR
鉴于我无法重命名源文件中的列,
如何使用其名称而不是其编号([F1])手动选择此列?
答案 0 :(得分:6)
我终于找到了如何从这个列中检索数据。
您需要替换“。”通过“#”并将列名放在方括号或后缀中:
QUERY_SQL = _
"SELECT `Col#1`, Col3 FROM [table$] " & _
"IN '" & SourcePath & "' " & CHAINE_HDR
但是,这在INSERT INTO查询中无效。:
INSERT INTO [sheet$] (Col2, `Col#4`) IN '" & TargetPath & "' 'Excel 12.0;' " & QUERY_SQL
虽然这对我来说不那么成问题,因为我可以重命名目标表中的所有字段,但这仍然是一种奇怪的行为。