約 1 年前に更新された質問を見て、必要な解決策にたどり着きましたが、回答よりも多くの質問が寄せられました。
まず、私は SQL (DB2、SQLServer、Oracle) の「初心者」ではありませんが、Excel で SQL を使用するのは比較的「初心者」です。さらに、私は 2010 年に取り組んでいますが、2003 年との互換性を維持する必要があります。
私がやろうとしているのは、あるシートのデータを別のシートに一致させ、例外を報告することです。「Open Lines」から 6 列を選択し、それらを「Back Orders」からの 3 列と一致させて、例外のみを表示したいと考えています。「オープン ライン」は 1..n で、「バック オーダー」は 0..n です。「Back Orders」が存在する行のみを取得したい。
通常の SQL を記述するには、次のようにします。
SELECT
O.[Part Number], O.[Part Desc], O.[Source Domain], O.[Ship Qty], O.[Date Created],
B.[Dest Domain], B.[Quantity], B.[Date Created]
FROM [OPEN LINES] O
JOIN [Back Orders] B ON O.[Part Number] = B.[Part Number]
WHERE B.[Part Number] IS NOT NULL
ORDER BY O.[Part Number]
問題は、エラーなしで結合を通過できないことです。これは私がこれまでに持っているものです。
rs.Open "SELECT [OPEN LINES$].[Part Number], [OPEN LINES$].[Part Desc], " $ _
"[OPEN LINES$]. [Source Domain], " & _
"[OPEN LINES$].[Ship Qty], [OPEN LINES$].[Date Created] " & _
"FROM [OPEN LINES$] " & _
"JOIN [Back Orders$] ON [OPEN LINES$].[Part Number] = [Back Orders$].[Part Number] " & _
"ORDER BY [OPEN LINES$].[Part Number] ;", cn
ご協力いただければ幸いです。
ゴード