1

我设置了一个子表单,列出来自联结和查找表的存储值。这部分运行良好(我可以查看所有存储的条目或添加新条目)。

以下是我的人际关系:

在此处输入图像描述

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

在此处输入图像描述

从控制台中删除一行的 SQL 很简单:

DELETE FROM junction_model WHERE cust_id = X AND model_id = Y

事实证明,从表单中删除一行并不那么简单。

有没有一种相对简单的方法可以从表单本身做到这一点?

4

2 回答 2

1

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

看起来您刚刚删除了组合框的内容。当您去保存(仍然存在的)记录时,Access 反对,因为.Value组合框是Null,并且连接表上的主键禁止Null[model_id] 的值。

于 2013-05-13T21:50:56.940 回答
1

为了其他人的利益,请回顾一下:

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

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


福特平托 (X)


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

于 2013-10-09T23:45:35.483 回答