Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询帮助-不确定在没有模糊外部联接的情况下如何执行此操作_Sql_Ms Access_Vba - Fatal编程技术网

SQL查询帮助-不确定在没有模糊外部联接的情况下如何执行此操作

SQL查询帮助-不确定在没有模糊外部联接的情况下如何执行此操作,sql,ms-access,vba,Sql,Ms Access,Vba,在Access中,我试图从五个相关的表中获取信息,但我不确定如何编写此查询。我甚至不知道如何开始。我有: tblEmployee tblCourseCatelog tblSessions tblInstructorDeliverables ----------- ---------------- ----------- ------------------------- EmpID (PK) CatelogID (PK) SessionID(pk) ID (PK

在Access中,我试图从五个相关的表中获取信息,但我不确定如何编写此查询。我甚至不知道如何开始。我有:

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作为此查询的源

现在有更快的方法来解决您的问题,但经验表明,“补丁”在维护方面非常昂贵


最后,考虑一下你的信息流,因为它看起来有点混乱。您正在为表单提供讲师参数,该表单将提供更多能够教授相同课程的讲师的信息?如果这是关键,那好吧,但请尽量保持应用程序的健壮性和最低限度。祝你好运。

对不起,我想我应该提一下!一节课可能有许多讲师。这里有点忙!这很有效。比我想做的容易多了。另外,在我喝了更多的咖啡后,我能读到你写的东西!!!