4

表としてフォーマットされたデータを含む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。[IdRiesgo]LEFT JOIN [Eventos $] e ON er。[IdEventoの構文エラー(演算子がありません) ]=e。[Id]"

最初の2行(1つの結合のみ)のみを使用してクエリを実行すると、すべてが期待どおりに機能します。私の質問は、2つのJOINを使用するとクエリが機能しないのはなぜですか?

少なくとも、ExcelシートをクエリするためのADODBの使用に関するドキュメントを見つけるために誰かが私を助けてくれますか?

4

1 に答える 1

9

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]

于 2012-09-07T17:56:24.560 に答える