在我的数据库中,有一个基于查询的表单,它定义了一个子数据表。当窗体处于DataSheet视图中时,每条记录都显示加号,可以根据源查询上定义的子数据表展开加号以显示相关记录。换句话说,Datasheet视图会自动显示子数据表--正如我们所期望的那样,所以我知道它可以像这样工作。
然后,我基于与现有工作表单相同的查询创建了一个新表单。但是,新的数据表视图将不显示子数据表...没有加号,什么都没有。接下来,我创建了一个测试数据库,其中包含两个相关的表,并且我还确保这些表定义了一个子数据表。如果我直接打开这些表,我会像预期的那样看到加号和子数据表。但是,如果我在这些表上定义了一个窗体,那么在数据表模式下查看时,它将不会显示子数据表。Access窗体没有单独的设置来定义子数据表,它只能从其记录源对象(即表或查询)继承子数据表设置。
有没有办法强制窗体(在“数据表”视图中)显示记录源对象上已定义的“子数据表”?为什么即使基于相同的查询,新表单的功能也可能与原始表单不同?
我使用的是Access 2013和带有2007-2013文件格式的数据库。
发布于 2016-06-30 04:33:53
子数据表视图仅在DataSheet视图中可用。
此外,建议使用子数据表视图仅用于读取,而不用于编辑,因为可能会导致意外错误。
来自Microsoft:
如果向表中添加子数据表,请将这些子数据表的使用限制为查看而不是编辑重要的业务数据。如果要编辑表中的数据,建议您使用窗体而不是子数据表来编辑数据,因为如果用户不小心滚动到正确的单元格,则在数据表视图中更有可能出现数据输入错误。另请注意,向大表添加子数据表可能会对表的性能产生不利影响。
当您创建符合以下条件之一的表时,Microsoft Office Access会自动创建子数据表:
表是一对一的关系。
表是一对多关系中的“一”端,其中表的SubdatasheetName属性设置为“自动”。
通过匹配相关表中的主键和外键字段来定义关系。
还可以向数据库中的任何表、查询或窗体添加子数据表。在“数据表视图”中,窗体一次只能显示一个子数据表。
https://stackoverflow.com/questions/38108936
复制相似问题