如何 SELECT 字段名称包含点的列

How to SELECT column which field name contains a dot

我正在使用 ADO 从 Excel 工作簿导入数据。我在一个工作表中遇到了一些问题,其中一个列名称包含一个点:"Col.1".

我尝试了我找到的所有东西:双引号、括号、后缀。什么都不管用。要么引发错误,要么每行的查询输出 "Col.1"。

QUERY_SQL = _
"SELECT `Col.1`, Col3 FROM [table$] " & _
"IN '" & SourcePath & "' " & CHAINE_HDR

鉴于我无法重命名源文件中的列,

如何使用名称而不是编号 ([F1]) 手动 select 此列?

我终于找到了如何从此列中检索数据。

您需要替换“.”通过 "#" 并将列名放在方括号或反标中:

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

虽然这对我来说问题不大,因为我可以重命名目标工作表中的所有字段,但这仍然是一个奇怪的行为。