1

Excel の VBA との接続を確立した "Filename.accdb" (2010) ファイルがあります。

ファイル内に TableA があるとしましょう:

Column1 Column2 Worker
------- ------- -------
Text1   Text2   15
Text3   Text4   4
...
Text5   Text6   20

そしてTableB:

ID      Name
------- -------
1       Name1
4       Name4
15      Name15
...
20      Name20

これらのテーブルをワークシートにインポートできますが、達成したいのは次のとおりです。

望ましいクエリ結果 (TableA 全体は必要ありません):

Column1 Worker
------- -------
Text1   Name15
Text3   Name4
...
Text5   Name20

現時点では、両方のテーブルを別々にインポートしてから、「名前」列の値を「ワーカー」列に書き込みます。for ループと関数 Vlookup(...) を使用してこれを実現します。高速で正常に動作するので、私の問題は何ですか?

まあ、それはたくさんのコードを生成します.SQLクエリによってそれが可能でなければならないと確信しています. また、私はSQLにまったく慣れていないので、これから多くのことを学ぶと思います。

これはこれまでのところ私の文字列です...

sql = "SELECT TableA.Column1, TableA.Worker, TableB.Name " & _
      "FROM TableA " & _
      "LEFT JOIN TableB " & _
      "ON TableB.ID = TableA.Worker"

それは機能せず、「...複数フィールドで結合を実行できません...」というエラーがスローされます。インターネットで解決策を見つけることができませんでした。

誰かが問題を見ていますか?私は何を間違っていますか?

前もって感謝します 乾杯

4

1 に答える 1

0

TableB.ID は数値列です。説明から必要な列は Name です。

sql = "SELECT TableA.Column1, TableA.Worker, TableB.Name " & _
      "FROM TableA " & _
      "LEFT JOIN TableB " & _
      "ON TableB.Name = TableA.Worker"

Name は、列名として適切な選択ではないことに注意してください。MS Access でクエリをテストすることは常に賢明です。クエリ デザイン ウィンドウは、開始するのに最適な場所です。

于 2013-03-12T14:57:27.940 に答える