使用ADODB在VBA过程中查询Excel文件时,多个JOIN是否不可用?

时间:2012-09-07 17:14:47

标签: sql excel-vba adodb vba excel

我有3张格式化为表格的数据。工作表名称为“Riesgos”,“Eventos”和“EventosRiesgos”。

EventosRiesgo提供有关事件和风险的信息(多对多关系)。

我正在尝试从Riesgos获得所有风​​险,但也有与风险相关的事件(。我使用ADODB查询工作表作为数据库表并使用以下SQL:

SELECT * FROM [Riesgos$] r
LEFT JOIN [EventosRiesgos$] er ON r.[Id]=er.[Id Riesgo]
LEFT JOIN [Eventos$] e ON er.[Id Evento]=e.[Id]

但是我得到一个错误,它是西班牙文,但粗略的翻译将是:语法错误(缺少运算符)在表达式“r。[Id] = er。[Id Riesgo] LEFT JOIN [Eventos $] e ON er。 [Id Evento] = e。[Id]“

当我仅使用前两行(只有一个连接)运行查询时,一切都按预期工作。我的问题是:当我使用两个JOIN时,为什么查询不起作用?

任何人都可以帮助我,至少找到有关使用ADODB查询Excel工作表的文档吗?

1 个答案:

答案 0 :(得分:8)

访问 Jet / ADODB / ACE喜欢包含多个表的括号

SELECT  * FROM ( [Riesgos$] r
LEFT JOIN [EventosRiesgos$] er ON r.[Id]=er.[Id Riesgo] )
LEFT JOIN [Eventos$] e ON er.[Id Evento]=e.[Id]

唯一的区别是[riesgos$] r .... er.[Id Riesggo]

周围的括号