微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS Access:防止组合框控件向链接表添加新数据

如何解决MS Access:防止组合框控件向链接表添加新数据

MS Access(当前版本/365)——尝试构建一个简单的发票解决方案。为了这个问题,我有 2 个表:

  • 客户(ID [autoNumber]、姓名等)。
    • 示例:ID = 1//name = "client 1"
    • 示例:ID = 2//name = "client 2"
  • 项目(ID [autoNumber]、ClientID [FK to clients --> ID]、itemName 等)。
    • 示例:ID = 1// clientID = 1 // name = "item 1 for client 1"

PK/FK/关系建立正确,客户手动添加

我想构建一个能够添加新项目的表单。由于很难通过 ID 识别客户,我希望(在视觉上)链接客户和项目表,所以我会有一个带有客户名称的下拉列表(组合框),然后我可以添加与客户相关的新项目来自落下。在此阶段无需添加新的客户信息,因为这些信息已在上一步添加。简而言之,我想从下拉列表中选择“客户 1”,添加一个新项目,然后将其保存到客户 ID 为 1 的项目表中(参见上面的示例),如下所示:

  • 新项目:ID = 2// clientID = 1 // name = "item 2 for client 1"

使用组合框:我遇到的问题是,如果我将 Control Source 设置为 Client Name,将行源设置为来自 clients 表的相应列值,如果我添加一个新项目,Access 将复制新客户 ID 下的客户名称。因此,该项目被保存为:

  • 新项目:ID = 2// clientID = 3 // name = "item 2 for client 1"

问题:我究竟如何阻止 Access 添加具有新 ID 的新(重复)客户端名称,而只是将项目添加到现有客户端? 谢谢

解决方法

为了帮助您的客户端组合框并且只看到 ID,将 ClientID 作为查询构建器的第一列,将它们的名称放在第二列,然后在组合框 Properties > Format 下,对于 Column Count 输入 2(或 3,如果您想使用名字姓氏),而对于 Column Width,则将其设为(对于列数 2)0;1.5 或(对于列数 3),0 ;1.5;1.5,这将隐藏 ID,只显示名称。

另外,你的表单上的按钮是什么?您需要一个“新记录”按钮,因为您似乎只是覆盖了一条记录。您的表单是否在表单的左下方显示 Record: 1 of __

What's on the bottom left part of my form

编辑: 您想在哪个表中收集所有这些数据?您的表单 Record Source 设置为什么? (要找到它,请在设计视图中单击表单左上角的方块)

未点击方块时:enter image description here

点击方块时:enter image description here

右击打开表单属性,它应该在 Data 下。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。