如何在Excel中生成提取时链接两组数据?
问题描述:
我有一个简单的应用程序,我让用户添加客户端信息(Fname,Lname,Dob)到tblClient。每个客户端都分配了一个ID,例如TalID101
,TalID102
,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 "