我有一个简单的应用程序,我让用户向tblClient添加客户端信息(Fname,Lname,Dob)。每个客户都会分配一个ID,例如TalID101
,TalID102
,TalID103
等。在另一种形式上,我让用户添加子信息(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"
答案 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 "