我正在使用ADO从Excel工作簿导入数据。我在一个工作表上遇到麻烦,其中一个列名包含一个点:“ Col.1”。
我尝试了所有发现的东西:双引号,方括号,后卫。什么都行不通。会引发错误,或者在每行上查询输出“ Col.1”。
QUERY_SQL = _ "SELECT `Col.1`, Col3 FROM [table$] " & _ "IN '" & SourcePath & "' " & CHAINE_HDR
鉴于我无法重命名源文件中的列,
如何使用其名称而不是其编号([F1])手动选择此列?
我终于找到了如何从此列中检索数据。
您需要 替换“。” 按“#”,然后将列名称放在方括号或后标中:
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
虽然这对我来说没有太大问题,因为我可以重命名目标工作表中的所有字段,但这仍然是一个奇怪的行为。