如何 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
虽然这对我来说问题不大,因为我可以重命名目标工作表中的所有字段,但这仍然是一个奇怪的行为。
我正在使用 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
虽然这对我来说问题不大,因为我可以重命名目标工作表中的所有字段,但这仍然是一个奇怪的行为。