我正在使用Access 2000,我有一个绑定到两个表上的可更新查询的表单。
以下是查询的简化版本:
SELECT tblA.ID AS MainID, tblB.ID, tblA.ItemX, tblB.ItemY
FROM tblA INNER JOIN tblB ON tblA.ID = tblB.ID;
列tblA.ID是“autonumber”类型,是主键。列tblB.ID是长整数,具有唯一索引,并且是必需的。从tblA.ID到tblB.ID之间存在1对1的“强制参照完整性”关系。
假设表单包含绑定到MainID,ID,ItemX和ItemY的文本框。 问题是如果用户启动一个新行,只在ItemX中输入一个值(即任何tblB列都没有),并进行保存,Access只会在tblA中插入一行。没有行插入到tblB中。然后查询无法随后检索刚刚插入的内容。
这是正常的Access行为,还是Access应该能够在tblB中插入一行,只有新生成的ID值和所有其他tblB列为空?
答案 0 :(得分:1)
如果查询的连接定义为“仅包含来自两个表的联接字段的行相等”,则这是正常行为。尝试将连接更改为“包括TableA中的所有记录,并且只有TableB中他加入字段的记录相同。”要更改此设置,请转到设计视图中的查询,然后右键单击从TableA到TableB的行。
请注意,数据库系统中的1对1关系通常是不常见的。这些是什么类型的表?