2015-11-25 36 views
0

我有一個簡單的應用程序,我讓用戶添加客戶端信息(Fname,Lname,Dob)到tblClient。每個客戶端都分配了一個ID,例如TalID101TalID102,TalID103等。在另一種形式中,我讓用戶添加子女信息(Fname,Lname,DOB)。這些信息被保存到另一個表格中,並且保存着父母保存的相同ID,但是這些信息會被放到另一個表格tblFamilyMember中。我創建一個Excel提取物,這是我的select語句:如何在Excel中生成提取時鏈接兩組數據?

Set g_RS = New ADODB.Recordset 
g_RS.CursorLocation = adUseClient 
g_strSQL = "SELECT TalID, FirstName, LastName, from dbo.tblclients " 
g_RS.Open g_strSQL, g_cnDatabase 
Debug.Print g_strSQL 
g_RS.MoveFirst 
xlRow = 1 

所以我選擇這個代碼,使列的電子表格和它精美的作品。我想要做的是讓孩子使用TALID在電子表格的父級之下。因此,家長與TalID 101,然後所有的孩子與TalID101,然後家長TalID102,和孩子等相關聯,我只是不知道如何將兩個表連接在一起,我一直在嘗試這樣的事情,但我繼續看錯誤,關於「找不到存儲過程'錯誤'」。

不確定我是否應該進行Inner Join或是否有另一個我沒有看到的錯誤?

g_strSQL = "SELECT tblFamilyMember.TalID, tblFamilyMember.FirstName, tblFamilyMember.LastName from tblFamilyMember " 
g_strSQL = g_strSQL & "Where tblFamilyMember.TalID = tblClient.TaLID" 

回答

0

是的,你應該使用內部連接。此外,如果你想要孩子的記錄,你應該將它們添加到SELECT子句如tblClient.FirstName等 嘗試是這樣的:

g_strSQL = "SELECT tblClient.TalID, tblFamilyMember.FirstName, tblFamilyMember.LastName 
FROM tblFamilyMember INNER JOIN tblClient 
ON tblFamilyMember.TalID = tblClient.TaLID " 

如果要包括所有客戶,無論他們是否有子成員或不試試這個:

g_strSQL = "SELECT tblClient.TalID, tblFamilyMember.FirstName, tblFamilyMember.LastName FROM tblClient 
LEFT JOIN tblFamilyMember 
ON tblFamilyMember.TalID = tblClient.TaLID "