数据库映射访问组合框 table 2-1 Table 关系

Access combo box for DB mapping table 2-1 Table relation

我运行在我正在进行的项目中遇到了一些障碍,并且是 Access 的新手我不知道如果没有 [=45 我想做的事情是否可行=].我环顾四周,但我只能找到与显示多列相关的答案,而不是控制我的数据库中的多个字段。

为了画一幅画,我在我的数据库中设置了一个映射系统来帮助我区分数据的名称和类型保存在 table。

设置如下:
-Data table 是 "LineItems" 带有 ID 和行数据(想想典型的 excel 格式)
-映射 table 是 "LineItem_Mapper",具有 LineItem_ID、DataType 和 Entity_ID
-一个助手 table "Data_Type" ID 和名字
- 两个具有不同属性的 "Entity" tables 都有 ID 和 Name

数据类型拆分的原因是两种数据的行为不同。一种类型具有父子关系,另一种是独立的行。我想在我的数据库中保留这个结构,我觉得我已经用这个映射完成了。

现在,谈谈我正在 运行 关注的问题。在我的 Access 数据输入表单中,我想使用组合框,因为用户在输入时可以为每一行选择的选项是有限的。但是,此组合框会影响上面的映射 table。我已经能够使用从我的 2 个实体 table 构建的自定义查询用我想要的列表填充该框,但我不知道如何使用访问权限来创建或更新映射 table这个盒子。

我想要发生的是,当我在框中选择某些内容时,会在映射 table 中创建(或更改)一行,并填充所有 3 列。首先是我正在填充的行的 LineItem_ID,然后是数据类型和实体 ID 以反映正确的映射。

Access 可以自己执行此操作吗?或者我需要用 VBA 来做这个吗?

根据 OP 的要求,将我的推荐转换为答案(更详细一点):

到目前为止,您最好的选择是使用 VBA。我怀疑是否有另一种方法,即使有它也会如此复杂,它是行不通且难以管理的。

这应该让你开始:

在组合框属性中转到事件选项卡,然后在 After UpdateOn Change(查找两个事件之间的差异以查看您喜欢哪种行为)单击向下箭头和 select [Event Procedure],然后点击 按钮。这将为您创建一个 VBA 模块,其中包含触发 selected 事件时运行的功能。

您可以使用 DoCmd.RunSQL "[Access SQL INSERT statement]" 向表中添加记录。

您可以使用Me.[MyComboBoxName] 获取组合框的当前值。同样,您的活动形式中任何其他内容的价值。

您可以使用 DLookup 获取表中任何记录的值。

希望这些能让您快速入门。