【问题标题】:Delete row from Access junction table via form通过表单从 Access 联结表中删除行
【发布时间】:2013-05-13 21:32:12
【问题描述】:

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

这是我的人际关系:

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

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

DELETE FROM junction_model WHERE cust_id = X AND model_id = Y

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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


      福特平托 (X)


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

      【讨论】:

      • 谢谢 - 很快就会再次在这个数据库上工作,看看效果如何。
      猜你喜欢
      • 2014-08-23
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      相关资源
      最近更新 更多