当前位置: 首页 > 面试题库 >

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

徐嘉谊
2023-03-14
问题内容

我有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工作表的文档?


问题答案:

Access 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]



 类似资料:
  • 问题内容: 我想在VBA中查询Excel工作表 并 指定条件。 简单的查询可以完美地工作,但是我不知道如何添加WHERE子句。 我尝试过,但随后它抱怨缺少参数。 这是完整的代码: 问题答案: 在您的连接字符串中,您说 这意味着不管第一行包含什么内容,都将被视为标题。如果要使用F1,F2等,请说

  • 问题内容: 我有一个很大的Excel工作表,看起来与此类似: 我要做的是创建一个新的动态生成的表格,其中显示了所有人员。 在SQL中,这将是同步:。我以前从未在excel中使用过VBA(我是一位经验丰富的PHP / Javascript程序员,并且已在MS Access中使用过VBA),所以我正在寻找初学者的指导以帮助我入门。也许有人可以推荐一个简单的教程或博客文章,其功能类似于我需要做的事情?

  • 问题内容: JOIN查询比几个查询快吗?(您运行主查询,然后根据主查询的结果运行许多其他的SELECT) 我问是因为加入它们会使我的应用程序设计复杂化 如果速度更快,谁能大致估算出多少?如果是1.5倍,我不在乎,但是如果是10倍,我想我是。 问题答案: 这太模糊了,无法为您提供与您的具体情况相关的答案。这取决于很多事情。Jeff Atwood(该网站的创始人)实际上撰写了有关此内容的文章。但是,在

  • 为了让我的用户执行更复杂的搜索,我正在使用Algolia。 我想将此jsonObject转换为与兼容的东西,以便能够使用 谢谢你!

  • 我正在使用SOLRJ(与SOLR 7一起使用),我的索引为文档内容提供了一些名为content_eng、content_ita的字段...它还提供了一个包含文档完整路径的字段(由和处理)。 用户能够在content_xyz字段中进行搜索,这要归功于以下几行:final SolrQuery query=new SolrQuery();setQuery(searchedText);query.set(

  • 谢谢你阅读我的问题。 我有一个表[ws1(A4:Q500)]包含数据,而Q列后面有公式。因此,我无法复制整行,只能复制文本中的特定范围。 Q列是定义数据是否属于周期的公式,即11月16日至11月30日的数据。标志如下: 0 1 = 16/11 - 30/11 2. 这里的目标是将带有标志“1”的ws1数据复制到[ws2(A2:P200)],然后删除带有标志“1”和“2”的ws1数据 相信复制和删除