如何使用Form的数据表视图显示子数据表

时间:2016-06-29 19:54:53

标签: ms-access ms-access-2010

在我的数据库中是一个基于查询的表单,该表单定义了子数据表。当Form处于DataSheet视图中时,每条记录都会显示加号,可以根据源查询中定义的子数据表展开该加号以显示相关记录。换句话说,数据表视图会自动显示子数据表 - 正如所期望的那样,所以我知道它可以像这样工作。

然后,我根据与现有工作表单相同的查询创建了一个新表单。但是,新的数据表视图不会显示子数据表...没有加号,没有。接下来,我创建了一个带有几个相关表的测试数据库,并且我还确保这些表定义了子数据表。如果我直接打开表格,我会按预期看到加号和子数据表。但是如果我在这些表上定义一个表单,它将再次显示在数据表模式下查看时的子数据表。 Access窗体没有单独的设置来定义子数据表,而是只能从其记录源对象(即表或查询)继承Subdatasheet设置。

有没有办法强制Form(在数据表视图中)显示已在记录源对象上定义的子数据表?为什么新表单的功能可能与原始表单不同,即使它基于相同的查询?

我正在使用Access 2013和数据库以及2007-2013文件格式。

1 个答案:

答案 0 :(得分:2)

子数据表视图仅在DataSheet视图中可用。

此外,建议仅使用子数据表视图进行读取而不进行编辑,因为可能会导致意外错误。

来自Microsoft:

  

如果向表中添加子数据表,请限制使用这些子数据表   子数据表用于查看,而不是编辑重要的业务数据。如果   如果要编辑表格中的数据,我们建议您使用表格   编辑数据而不是子数据表,因为数据输入错误更多   如果用户不小心滚动,可能会出现在数据表视图中   到正确的细胞。另请注意,将子数据表添加到大型数据表中   表可能会对表的性能产生不利影响。

     

Microsoft Office Access会在您自动创建子数据表   创建一个符合以下条件之一的表:

     

该表是一对一的关系。

     

表格是" one"一对多关系的一面,在哪里   table的SubdatasheetName属性设置为Auto。

     

通过匹配主键和外键来定义关系   相关表格中的关键字段。

     

您还可以将子数据表添加到任何表,查询或表单中   数据库。在数据表视图中,表单只能显示一个子数据表   一次。