MS Access嵌套连续表单?

时间:2017-02-24 10:44:19

标签: ms-access

我是一个非盈利组织的志愿者。 我构建了一个我们在紧急情况下使用的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

非常感谢你的帮助。

弗朗西斯

3 个答案:

答案 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)

您无法嵌套连续表单。然而,一个简单的解决方法是简单地使用一个主表单并将两个连续表单并排放置。

在下面的屏幕中,我们有一个经典的“支票”支付(如会计套餐)。在左边,我们有一个持续的捐赠金额,在右边我们将捐款金额分配给几个账户。

enter image description here

在左侧“主”表单(现在是子表单)中,在当前事件中,您需要放置以下命令以使右侧的子项跟随此表单。

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).

因此,虽然您无法嵌套连续的表单,但您肯定可以“并排”放置子表单以实现相同的结果。在上面你可以看到我甚至有条件格式,"绿色"显示右侧的金额何时=左侧的捐款金额。