如何在Excel中生成提取时链接两组数据?

问题描述:

我有一个简单的应用程序,我让用户添加客户端信息(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" 

是的,你应该使用内部连接。此外,如果你想要孩子的记录,你应该将它们添加到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 "