SQL查询帮助-不确定在没有模糊外部联接的情况下如何执行此操作
在Access中,我试图从五个相关的表中获取信息,但我不确定如何编写此查询。我甚至不知道如何开始。我有:SQL查询帮助-不确定在没有模糊外部联接的情况下如何执行此操作,sql,ms-access,vba,Sql,Ms Access,Vba,在Access中,我试图从五个相关的表中获取信息,但我不确定如何编写此查询。我甚至不知道如何开始。我有: tblEmployee tblCourseCatelog tblSessions tblInstructorDeliverables ----------- ---------------- ----------- ------------------------- EmpID (PK) CatelogID (PK) SessionID(pk) ID (PK
tblEmployee tblCourseCatelog tblSessions tblInstructorDeliverables
----------- ---------------- ----------- -------------------------
EmpID (PK) CatelogID (PK) SessionID(pk) ID (PK)
Name CourseName CatelogID EmpID
DateAndTime CatelogID
tblInstructorSessions
---------------------
ID (pk)
Instructor (fk tblInstructorDeliverables.ID)
SessionID
t员工
是所有员工的列表tblCourseCatelog
是提供的所有课程的表格tblSessions
是已安排的课程列表TBLinstructorDeliveries
是一个可以指导的员工表以及他们可以指导的课程tblInstructorSessions
是一个由讲师指定指导的课程表
我试图在表单上创建一个列表框,其中将填充有资格教授某门课程的讲师的姓名
诀窍是我将SessionID
传递给表单,而不是CatelogID
。我这样做的原因是我可以指派讲师参加那个课程,所以我需要那个号码
e、 g.已设置会话。它是SessionID
1805。这是一门急救课程(CatelogID
7)<代码>frmasigninstructors.OpenAgs=1805
现在我想在列表框中选择并显示所有可以通过计算SessionID 1805是急救课程来指导CatelogID 7的讲师
我今天只喝了一杯咖啡,我需要一些帮助!谢谢 表单frmAssignInstructors OnLoad事件代码:
' Execute query, retrieve CatelogID
Me.RecordSource = "SELECT SessionID, CatelogID FROM tblSessions WHERE SessionID = " _
& Me.OpenArgs & ";"
' Form has a Control txtCatelogID whose ControlSource is CatelogID
Me.ListBox.RowSource = "SELECT ID, EmpID, CatelogID FROM " _
& "tblInstructorDeliverables WHERE CatelogID = " & txtCatelogID.Value & ";"
通过这种方式,您首先将会话数据加载到RecordSource表单中,然后根据检索到的CatelogID值构造ListBox行源。在实现时还存在更多的数据库建模问题 您可以创建一个与tblCourseCatAlog和TBLinstructorDeliveries相关的表,我们称之为讲师课程,因为它是一个N x N关系,而且在我看来,该信息不应由会话实体提供。可以使用以下列创建此表:CatalogID(FK)和instructorID(FK)。此表将包含哪些讲师能够教授什么课程的信息,反之亦然 之后,就可以很容易地筛选某个讲师所教授的课程。使用此新表和讲师的表创建一个查询,以显示讲师详细信息。使用listbox控件的访问向导将listbox作为此查询的源 现在有更快的方法来解决您的问题,但经验表明,“补丁”在维护方面非常昂贵
最后,考虑一下你的信息流,因为它看起来有点混乱。您正在为表单提供讲师参数,该表单将提供更多能够教授相同课程的讲师的信息?如果这是关键,那好吧,但请尽量保持应用程序的健壮性和最低限度。祝你好运。对不起,我想我应该提一下!一节课可能有许多讲师。这里有点忙!这很有效。比我想做的容易多了。另外,在我喝了更多的咖啡后,我能读到你写的东西!!!