我是一个非盈利组织的志愿者。 我构建了一个我们在紧急情况下使用的MS Access数据库。
我无法理解如何显示连续的表单,其中每个元素可以有多个子元素。
希望你能理解这些信息:
表事件:
+-------------+---------+
| event_id | Counter |
+-------------+---------+
| description | Text |
+-------------+---------+
| code_a | Text |
+-------------+---------+
| code_b | Text |
+-------------+---------+
表格救援:
+-------------+---------+
| id_rescue | Counter |
+-------------+---------+
| id_event | Text |
+-------------+---------+
| time_1 | Text |
+-------------+---------+
| time_2 | Text |
+-------------+---------+
我必须创建一个表单来查看所有事件,并为所有事件提供所有救援。 每个事件可以有0到n次救援。
这样的事情:
event_id description code_a code_b event_id rescue_id ambulance_name time_1 time_2 time_3
------------------------------------------------------------------------------------------------------------------
1 description_1 code_1 detail_1 | 1 12 alpha 00:10 00:16 00:27
| 1 14 bravo 00:10 00:16 00:27
| 1 16 charlie 00:10 00:16 00:27
-----------------------------------------------------------------------------------------------------------------
2 description_2 code_2 detail_2 | 2 18 delta 00:10 00:16 00:27
-----------------------------------------------------------------------------------------------------------------
3 description_3 code_3 detail_3 | 3 22 yankee 00:10 00:16 00:27
| 3 14 zulu 00:10 00:16 00:27
| 3 76 golf 00:10 00:16 00:27
| 3 35 romeo 00:10 00:16 00:27
| 3 96 victor 00:10 00:16 00:27
| 3 36 sierra 00:10 00:16 00:27
-----------------------------------------------------------------------------------------------------------------
您可以在此处下载包含表格和关系的非常简化的 ms Access数据库:http://www.criferrara.it/download/Test_DB.accdb
非常感谢你的帮助。
弗朗西斯
答案 0 :(得分:1)
已经很久了,但是我找到了解决这个问题的方法,并且可以使用它。 Microsoft Access 2013 32位,Windows 10 x64。
我的解决方案是使用报表上的分组排序来创建所需的结果。并根据需要将该报告用作其他表单的子报告。照常打开该表单。
如果要直接打开报表而不是直接打开表单的子报表,则可以使用与acViewPreview不同的acViewReport模式。
DoCmd.OpenReport "rptPackingStation", acViewReport
答案 1 :(得分:0)
尽管Access告诉您,您不能拥有连续的主表单和连续的子表单,但您实际上是CAN。只需忽略该警告,然后重置主窗体的视图。
通常你会将Sub表单放在主表单的页脚中,但是如果布局更适合你,你可以将两个连续表单彼此相邻作为子表单保存在主表单中。
或者,如果您只想查看不编辑它们的项目,您可以使用报告视图复制所需的布局,并在子报告上显示右侧数据。
编辑 - 我调整了您的示例,以显示两种简单的方法,让子表单作为页脚,一个单独的表单。 Edited Sample DB
答案 2 :(得分:0)
您无法嵌套连续表单。然而,一个简单的解决方法是简单地使用一个主表单并将两个连续表单并排放置。
在下面的屏幕中,我们有一个经典的“支票”支付(如会计套餐)。在左边,我们有一个持续的捐赠金额,在右边我们将捐款金额分配给几个账户。
在左侧“主”表单(现在是子表单)中,在当前事件中,您需要放置以下命令以使右侧的子项跟随此表单。
me.Parent.Child1.Requery
me.Parent.Child2.Requery.
因此,并排表格不会“自动”跟随 - 当你在左侧表格中移动时,你需要上面的“更新”右侧表格。
您仍然可以(并且应该)使用左侧表单的链接子/主设置。
例如:
linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate
back to the parent table)
LinkMasterFields [MasterForm].[form].[ID]
在子项2表单(右侧)的链接子/主设置中,您可以放置
linkChildFields main_id
(whatever is the name of the field in this
sub-form that is used to relate back to
the parent table)
LinkMasterFields [leftSideMasterForm].[form].[ID]
("leftmasterForm" is the name of the control you
used to hold the left master form).
因此,虽然您无法嵌套连续的表单,但您肯定可以“并排”放置子表单以实现相同的结果。在上面你可以看到我甚至有条件格式,"绿色"显示右侧的金额何时=左侧的捐款金额。