数据库映射表2-1表关系的访问组合框

时间:2019-02-21 16:09:29

标签: ms-access combobox data-entry

我对正在处理的项目有点困扰,对于Access来说,我是一个陌生的人,我不知道如果没有VBA,我想做的事情是否可能实现。我环顾四周,但我只能找到与显示多个列有关的答案,而不是控制数据库中的多个字段。

要绘制图片,我在数据库中设置了一个映射系统,以帮助我区分表中保存的数据的名称和类型。

设置如下:
-数据表是带有ID和行数据的“ LineItems”(请考虑典型的excel格式)
-映射表是具有LineItem_ID,DataType和Entity_ID的“ LineItem_Mapper”
-具有ID和名称的辅助表“ Data_Type”
-具有不同属性的两个“实体”表都具有ID和名称

拆分的原因在于数据类型,因为这两种数据的行为不同。一种类型具有父子关系,另一种类型是独立行。我想在数据库中保留此结构,并认为我已经通过此映射做到了这一点。

现在,解决我遇到的问题。在我的Access数据输入表单中,我想使用一个组合框,因为用户在输入时可以为每行选择的选项是有限的。但是,此组合框正在影响上面的映射表。我已经能够使用从我的2个实体表中构建的自定义查询在所需的列表中填充该框,但是我不知道如何使用此框获取Access来创建或更新映射表。

我要发生的事情是,当我在框中选择某项时,在映射表中创建了(或更改了)一行,并填充了所有3列。首先是我要填充的行的LineItem_ID,然后是DataType和Entity ID以反映正确的映射。

Access可以单独执行此操作吗?还是我需要使用VBA来做到这一点?

1 个答案:

答案 0 :(得分:0)

根据OP的要求,我将其表述转换为答案(还有更多细节):

到目前为止,最好的选择是使用VBA。我怀疑是否还有另一种方法,即使存在这样的问题,也将是行不通和难以管理的。

这应该使您入门:

在组合框属性中转到事件选项卡,然后在After UpdateOn Change中(查找两个事件之间的差异以查看您喜欢的行为),单击向下箭头并选择{{ 1}},然后单击[Event Procedure]按钮。这将为您创建一个VBA模块,该模块具有在触发选定事件时运行的功能。

您可以使用将记录添加到表中。

您可以使用DoCmd.RunSQL "[Access SQL INSERT statement]"来获取组合框的当前值。同样,活动表单中的其他任何值。

您可以使用Me.[MyComboBoxName]来获取表中任何记录的值。

希望这些可以帮助您相对快速地开始使用