gpt4 book ai didi

ms-access - 为什么 Microsoft Access 表单会为一个查询而不是另一个查询创建记录?

转载 作者:行者123 更新时间:2023-12-04 23:11:10 28 4
gpt4 key购买 nike

我有一个 Access 数据库。让我们假设这是一家宠物店。

有一张动物 table 。

Animals (animal_id, birth_date, price)

然后是我们销售的不同类型动物的具体表格。
Dogs (animal_id, bark_volume)
Cats (animal_id, collar_size, shedding_rate)
Fish (animal_id)

鱼并不有趣,因此它们没有任何特殊领域。 Fish 表只是存在,因此您知道 Animals 表中的哪些记录是鱼。

现在,我有一个用于将动物添加到宠物店的通用表格。在获得表格之前,您首先必须说出您要添加的动物类型。基于此,表单显示/隐藏字段,更改其记录源,并将字段绑定(bind)到适当的数据列。该表单从查询 DogInfo、CatInfo 和 FishInfo 中提取其数据。

现在,当你进入一只狗或一只猫时,一切都很好。一条记录被添加到 Animals 和 Dogs 或 Cats 中。

但是,当您输入鱼时,您得到的只是动物,没有鱼。

这可能是什么原因造成的?是否是由于 Fish 表上缺少其他列而导致的?

(让我们抛开使用选择查询更新表根本没有意义的事实。我没想到 Access 一开始就让我这样做,但 Access 的座右铭似乎是“让错误的事情变得容易做和做正确的事很尴尬。”但是,该数据库相对简单且不经常使用,并且比我开始研究它之前至少好 100 倍,所以我并不太担心这个问题,因为只要我能让它工作。)

最佳答案

“是不是因为 Fish 表中缺少其他列导致的?”

是 - 当您在子记录(狗和猫)上输入数据时,Access 将自动填写父 ID (animal_id)

由于没有鱼记录的数据条目,因此不会创建它。你必须在代码中做到这一点。不确定您的表单和数据源是如何设置的,但您会在其中一个表单事件上执行类似的操作:

Fish![animal_id] = Animal![animal_id]

编辑

在您的 FishInfo 查询中,您必须提供 Fish.[animal_id]别名 - 你不能有两个同名的字段 - 称之为 Fish_animal_id
然后在 Form_BeforeUpdate 事件中输入:
Me.Fish_animal_id = Me.animal_id

关于ms-access - 为什么 Microsoft Access 表单会为一个查询而不是另一个查询创建记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/745245/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com