在Microsoft Access中创建关系



我正在创建一个数据库来跟踪学生在课堂上的参与情况。这是我目前设置的。我在Access 2007工作。

参与者主控表-姓名、联系方式、注册班级、注册学期。注册班级(A班、B班、C班)和注册学期(第一学期、第二学期)见表。主键是一个自动递增的数字,但所有学生都获得一个学校ID号(ParticipantID)。

查询名称&第二学期A班学生地址( SELECT name, address FROM ParticipantMaster WHERE EnrClass = "Class A" and EnrSem = "Semester 2")。查询成功

DailySessionLog是一个表,表示每个日常类。包括日期、讲师姓名(从列表中查看)、讨论主题(从列表中查看)等字段。

现在我想将DailySessionLog链接到Query1—让我每天检查一个学生当天是否有无,部分,一半或完整的会话。我有麻烦链接这些和创建一个子表单。任何帮助吗?

我尝试在DailySessionLog中有一个ParticipantID字段,我链接到Query1中的ParticipantID。它无法识别这是一对还是多对关系。如果我继续使用Access向导创建子表单,它会将Participant数据视为"高级"表单,将DailySessionLog数据视为"子"表单。我想让它反过来。

谢谢你的帮助!

要创建一对一或一对多关系,您应该将DailySessionLog链接到ParticipantMaster而不是Query1。然后,您将创建一个查询来显示给定学期中给定类的每日会话日志。例子:

SELECT {field list} FROM ParticipantMaster INNER JOIN DailySessionLog ON {join expression} WHERE ParticipantMaster.EnrClass = "Class A" AND ParticipantMaster.EnrSem = "Semester 2"

但是,最好使用可变参数而不是硬编码字符串。例子:

SELECT {field list} FROM ParticipantMaster INNER JOIN DailySessionLog ON {join expression} WHERE ParticipantMaster.EnrClass = [ClassName] AND ParticipantMaster.EnrSem = [SemesterName]

或者,在打开的窗体上使用控件中的值:

SELECT {field list} FROM ParticipantMaster INNER JOIN DailySessionLog ON {join expression} WHERE ParticipantMaster.EnrClass = [Forms]![FormName]![ClassControlName] AND ParticipantMaster.EnrSem = [Forms]![FormName]![SemesterControlName]

编辑

实际上,您希望使用这个AND xQbert的想法,因此,为了简洁起见,使用这样的表名:

Participants (a.k.a. ParticipantMaster)
Sessions (a.k.a DailySessionLog)
ParticipantSession (a.k.a. Participant_daily_session_log)

第一个查询应该更像这样:

SELECT {field list}
FROM
    Participants
    INNER JOIN ParticipantSession ON Participant.ID = ParticipantSession.ParticipantID
    INNER JOIN Sessions ON ParticipantSession.SessionID = Session.ID

您打算将数据库"存储"在何处?

我认为问题是你需要另一个表:一个Particpiant_Daily_sessioN_log,它将存储每个学生参与的每日日志结果。

考虑表dailysessionlog,你不希望列出每个学生的教师姓名,主题和日期,是吗?

所以你有很多学生可能上课,一个班级可能有很多学生。这意味着你有许多对许多的问题需要解决,然后访问才能弄清楚你想做什么。

思考下面的表格:参与者(ParticipantID)类(ClassID)Session (SessionID, ClassID)班级参与人数(班级,参与者,学期,年SessionParticipants (SessionID, ClassID, ParticipantID)

相关内容

  • 没有找到相关文章

最新更新