【发布时间】:2021-09-07 18:15:30
【问题描述】:
我正在通过 ADODB 连接打开一个 Excel 工作表。该代码一直运行良好,直到今天它拒绝连接到新的 Excel 文件。
我使用的 SQL 字符串是:
SELECT container_key,
price_catalogue,
portfolio_type,
portfolio_subtype,
yearly_fee,
yearly_fee_factor,
yearly_fee_2,
value_1,
advisory_agreement__advisory,
value_1_29,
3rd_party_key
FROM [temp0$]
现在,当我在应该打开记录集的线路上时,我从 VBA 收到一条错误消息:
查询表达式“3rd_party_key”中的语法错误(缺少运算符)
我已验证该字段存在并且在电子表格中的名称相同。语法对我来说也是正确的。 spreadhseet 非常大(超过 360 列),错误消息中引用的字段是最后一列。这可能与我遇到的问题有关吗?
谁能指出问题出在哪里?
更新: 我尝试将所有字段名称放在括号中。虽然这不会产生运行时错误,但它也不起作用。最后我尝试减少字段数量并一一进行。以下 3 个字段会导致错误:
advisory_agreement__advisory,
value_1_29,
3rd_party_key
如果我删除这些字段,我可以毫无问题地打开记录集。我怀疑这些字段的命名约定会以某种方式导致冲突。
【问题讨论】:
-
只是猜测,但请尝试将字段名称括在方括号中,如
[3rd_party_key]。我认为 Access 不喜欢以数字开头的字段...... -
很高兴知道...似乎它确实消除了该错误,尽管现在生成了一个新错误“没有为一个或多个必需参数提供值”
-
不知道新的错误。
advisory_agreement__advisory字段中是否真的有双下划线? -
是的,它确实有一个双下划线。我还通过删除字段名称中的数字进一步测试了问题是数字的假设。它似乎确实有所不同,但我继续收到错误消息:“没有为一个或多个必需参数提供值”。
-
双重和三重检查字段名称