【问题标题】:ms access form to insert group of recordsms 访问表单以插入记录组
【发布时间】:2018-10-26 04:16:16
【问题描述】:

我有一个学生数据库包含以下表格:

学生表(Id, StudentName, ClassNum, ....)

操作表(Id、ActionDate、studentID、状态、原因、注释)

状态字段可能的值是:出席(=1) 缺席(=2)、允许(=3)。 我想构建一个表单,表单顶部有两个未绑定的字段(班级编号和日期)。子表单应包含该班级编号的所有学生的网格(列表);该网格的每一行包括:学生姓名(不可编辑)、状态(例如下拉列表)、原因(文本框)。 表格应显示所有班级的学生。

当用户输入数据(状态、原因和注释)时,表单应在操作表中创建一条记录,其中包含学生 ID、日期(在顶部输入)和添加数据(即状态、原因所做的注释) )。

我如何构建一个包含表中记录的表单(在添加之前记录不存在)。

【问题讨论】:

  • 字段不能“未绑定”,控件可以“未绑定”。
  • 您已经描述了表单的整体设计和行为。最后一个问题似乎是要求提供有关 Access 表单和子表单如何工作以及如何实现需求列表的完整教程。这个问题对于 Stack Overflow 来说太宽泛了。也许首先尝试表单向导(在创建功能区上)。我建议在 Web 上搜索 Access 表单教程,或者如果您有本地图书馆,请寻找一本好的 Access 指南。 (我并不是说这是刻薄的,而是这正是我学习大部分编程知识的方式。这是一个很好的开始方式。)
  • 我知道如何将主表单链接到子表单。我搜索但找不到解决方案的问题是:记录的子表单来源是什么?如果我使用学生表,那么学生表不包含必填字段(状态、原因和注释)如果我使用操作表,那么操作表不包含与该日期和班级编号相关的任何行。因此,表单将不包含任何行。
  • 表单需要显示所有学生姓名(来自按班级num过滤的学生表:表单顶部的未绑定控件),日期(来自from顶部的未绑定字段),其余字段将为空值(即状态、原因和注释)并由用户填写。在输入并保存数据之前,不会创建动作表中的记录。因此,它们不会被显示出来。

标签: ms-access


【解决方案1】:

您需要一个 INSERT SELECT 操作 SQL 来在 Action 表中创建一批记录。

CurrentDb.Execute "INSERT INTO Action(StudentID, ActionDate) SELECT ID, " & _
"#" & Me.tbxDate & "# FROM Students WHERE ClassNum = " & Me.tbxClassNum

如果 ClassNumber 是文本字段,则过滤条件需要撇号分隔符。

这假设每个学生只能上一堂课。如果它们可以有多个类,则需要在 Action 中使用 ClassNumber 字段。

然后过滤该批次记录的表单,以将数据输入到 Action 中的其他字段。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多