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

时间:2015-11-25 16:55:56

标签: excel vb6

我有一个简单的应用程序,我让用户向tblClient添加客户端信息(Fname,Lname,Dob)。每个客户都会分配一个ID,例如TalID101TalID102TalID103等。在另一种形式上,我让用户添加子信息(Fname,Lname,DOB)。此信息将保存到另一个表中,其父ID与保存的ID相同,但此信息将进入另一个名为tblFamilyMember的表中。我创建了一个Excel提取,这是我的select语句:

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和孩子等等。我只是不确定如何将两张桌子连在一起,我一直在尝试像这样的东西,但我一直看到错误,关于"无法找到存储过程' false'"。

不确定我是否应该进行内部加入,或者是否还有另一个我没有看到的错误?

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

1 个答案:

答案 0 :(得分: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 "