2014-10-27 85 views
0

大家好,感謝您的幫助! 我試圖使用JOIN到fitlered SQL語句的表,以填充組合框結合(有道理?)MS Access VBA:將2條SQL語句與一個LEFT JOIN結合

這裏是主要的SQL查詢:

MainSQLquery = "SELECT QuotationID, QuoteDate, EmployeeID FROM TestTable1" 

我想寫一個聲明使用這樣的另一個表如下:

SELECT EmployeeID, EmployeeName 
FROM MainSQLquery LEFT JOIN EmployeeTable 
GROUP BY EmployeeID 

但我不明白。我得到一個「語法錯誤FROM子句」即使是這樣簡單的事情:

ComboSQL = "SELECT EmployeeID FROM " & MainSQLQuery 
Me.Combo2.RowSource = ComboSQL 

你們是否知道任何方式做到這一點?

******* **********背景

對於那些你們誰願意看到更大的畫面,我有一個顯示的報價列表的窗體和基於動態SQL語句,它與一個WHERE子句根據不同的輸入filetered並顯示,當它看起來是這樣的:

QuoteID Quote date Employee ID 
1   10/13   1 
2   10/13   2 
3   10/13   2 
4   09/18   1 
5   08/10   2 
6   07/16   3 
7   06/27   3 

在主要形式,我有我用它來過濾這些子窗體,它完美地組合框。但我也需要我的組合框以與子表單內容相同的方式進行過濾,並且沒有任何重複(這是我現在無法做到的唯一的事情)。

到目前爲止我用同樣的過濾SQL查詢子窗體和所有的組合框的有一個整潔的員工組合框,看起來像這樣(與上面的例子),所以不是:

1 
2 
3 

我得到的而不是(與子窗體):

1 
2 
2 
1 
2 
3 
3 

我的想法是有子窗體的主SQL查詢,基於主之一的組合框另一sqlquery的,這樣的事情:

SELECT EmployeeID, EmployeeName 
FROM MainSQLquery LEFT JOIN EmployeeTable 
GROUP BY EmployeeID 

如果我能得到這個工作,過濾器仍然會在mainSQL中構建,我可以將EmployeeID字段分組而不會出現問題。

我想它應該是相當簡單的,但我不能說得對,有一些我不知道用SAL作爲另一個來源。

(我希望我能張貼圖片或數據庫的樣本,而是偏執的傢伙得到了我以前的帖子刪除,因爲這一點,所以它有純文本,比較遺憾的是這樣做)當你有

回答

0

一個JOIN你應該有一個ON讓數據庫知道如何與這些表:

SELECT EmployeeID, EmployeeName 
FROM (
    SELECT QuotationID, QuoteDate, EmployeeID 
    FROM TestTable1 
) AS MainSQLquery LEFT JOIN EmployeeTable 
ON MainSQLquery.EmployeeID = EmployeeTable.ID 
GROUP BY EmployeeID 

LEFT JOIN沾到左表中的所有記錄的加入 - MainSQLquery - 只有從記錄右表 - EmployeeTable - 匹配。如果在右表中找不到匹配項,則返回NULL值。

考慮這個例子:

TestTable1 
QuotationID | QuoteDate | EmployeeID 
-------------------------------------------- 
1    10/1/2014  1 
2    10/8/2014  2 
3    10/5/2014  3 
4    10/10/2014  1 
5    10/20/2014  5 

EmployeeTable 
ID | EmployeeName 
---------------------- 
1  Jeremy Smith 
2  Pam Engles 
3  Achim Flemmish 
4  Sandra Hayes 

這將是上述查詢的結果:

Result 
EmployeeID | EmployeeName 
-------------------------------- 
1    Jeremy Smith 
2    Pam Engles 
3    Achim Flemmish 
5    NULL 
+0

嗨jwatts。它與SELECT/FROM語句一起工作,但如果我在mainSQLquery中添加一個WHERE,則會出現「FROM子句中的語法錯誤」。在這種情況下是否還有其他要補充的內容? – Anthis 2014-10-27 05:31:07

+0

我拿回來,它的作品!我只是重新編寫它,出於某種原因,錯誤沒有顯示出來,不幸的是我不知道我以前的代碼有什麼區別!無論如何,謝謝你! – Anthis 2014-10-27 05:36:55