Jak korzystać z połączeń SQL w programie Excel

Widziałem pytanie zaktualizowane około rok temu, które zajęło mi długą drogę do rozwiązania, którego potrzebuję, ale doprowadziło do większej liczby pytań niż odpowiedzi.

Zacznę od stwierdzenia, że ​​nie jestem „nowicjuszem” w SQL (DB2, SQLServer, Oracle), ale jestem względnym „początkującym” użytkownikiem SQL w Excelu. Ponadto pracuję w 2010 r., Ale muszę zachować zgodność z 2003 r.

Próbuję dopasować dane w jednym arkuszu do drugiego i zgłosić wyjątki. Chcę pobrać 6 kolumn z „Otwartych linii” i dopasować je do 3 kolumn z „Zamówień zwrotnych” i pokazać tylko wyjątki. „Otwarte linie” mogą mieć wartość 1..n, a „Zlecenia zwrotne” mogą mieć wartość 0..n. Chcę tylko chwycić linie, w których istnieją „zamówienia z powrotem”.

Aby napisać normalny SQL, zrobiłbym coś takiego:

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] 

Problem polega na tym, że nie mogę ominąć połączenia bez błędu. To jest to, co mam do tej pory.

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

Byłbym wdzięczny za każdą pomoc, którą możesz zapewnić.

Gord

questionAnswers(1)

yourAnswerToTheQuestion