通过表单从Access联结表中删除行

时间:2013-05-13 21:32:13

标签: ms-access-2007 delete-row junction-table

我设置了一个子表单listing stored values from a junction and lookup table。这部分工作得很好(我可以查看所有存储的条目或添加新的条目)。

以下是我的关系:

enter image description here

这是我的表单布局,显示我尝试删除以前保存的关联的位置。如果我只是删除表单中行的内容,Access会在我尝试保存记录时返回此内容:index or primary key cannot contain null value

enter image description here

从控制台中删除行的SQL非常简单:

DELETE FROM junction_model WHERE cust_id = X AND model_id = Y

从表单中删除行证明并不那么简单。

从表单本身有一种相对简单的方法吗?

2 个答案:

答案 0 :(得分:1)

组合框左侧的那些小方块(其中一个中有一个“铅笔”图标,表示一个脏记录)是“记录选择器”。单击一个记录选择器将选择该记录,然后如果您点击删除,该记录将被删除。

您好像刚刚删除了组合框的内容。当你去保存(仍然存在的)记录时,由于组合框的.ValueNull而导致访问被拒绝,并且联结表上的主键禁止[model_id]的Null值]

答案 1 :(得分:1)

为了其他人的利益回头:

一个选项(对用户来说可能更直观)是在子窗体中添加“删除”按钮。在“设计”视图中打开子窗体,并从“控件”调板中添加一个“按钮”,并打开控件向导。命令按钮向导应该打开 - 从“类别”列表中选择“记录操作”,从“操作”列表中选择“删除记录”。向导的其余部分将自定义按钮的外观和名称。

我使用的是类似的表单,每行看起来像这样,组合框后面的(X)是一个小删除按钮:


Ford Pinto (X)


如果删除很重要,我认为按钮比单击“记录选择器”并按下删除键更加明显。