【问题标题】:Manually inserting record into linked table MS ACCESS手动将记录插入链接表 MS ACCESS
【发布时间】:2015-11-16 08:15:07
【问题描述】:

VBA 和 Access 新手,希望我能正确解释这一点。

我有两个表,Orders 和 Deliveries。

订单包括OrderNo、CustomerName、CustomerAddress、CustomerContact等。

Deliveries 包括 DeliveryNo、OrderNo、DeliveryDate、DeliveryType 等。

我在这两个表之间创建了一个关系,将它们在 OrderNo 之间链接起来,因为我在从订单创建交货时需要 CustomerName。

但是,有时交货是使用表单手动插入到表中的。此记录需要 CustomerName,但现在没有对应的 OrderNo。

我不确定如何设置我的表格以适应手动输入。 感谢帮助,谢谢

【问题讨论】:

    标签: sql ms-access vba


    【解决方案1】:

    听起来业务需求是能够在没有相应订单号的情况下将交货插入交货表。如果是这种情况,您需要放松对表的约束,并删除 Delivery.OrderNo 和 Orders 表之间的关系。否则,如果您出于其他原因需要强制执行外键关系,则可以使用特殊数字(0 或 -1)填充此字段以指示在这种情况下没有顺序。这完全取决于您希望如何执行业务逻辑。

    【讨论】:

    • 如果我删除关系,我将如何查看该交货的客户名称,因为每个交货必须有一个客户名称,但该值位于订单表中并通过订单号链接每张桌子。我也尝试使用特殊号码,但我收到一条消息,提示“数据库无法在表 Orders 中找到具有键匹配字段 OrderNo 的记录”。 OrderNo 设置为 0
    • 在这种情况下,您可能应该做的是在 Orders 表中插入一个新条目,其中包含未知字段的默认值,并将您的客户编号放入将您的订单项目链接到该客户的字段中.有某种方式表明这是一个“手动”订单,以便您的报告有意义,例如通过为“ManualOrder”添加“是/否”列。如果这不能解决问题,那么对我自己和其他审查此问题的其他人可能有用的方法是将数据图作为原始问题的一部分发布,以显示您的数据模型。
    • @Imrann,您的关系应该在您的查询或绑定到您的表单和报告的记录源中。它们本身不应设置在表级别。这简化了设置并防止发生此类错误。您不应该在表级别需要它们,因为您的用户本身都无法访问表。对吧……?
    【解决方案2】:

    如果您只是在表单中添加了 CustomerName 字段怎么办?

    根据我对您的问题的理解,您使用 Orders 表来生成 Deliveries,因此对于 Orders 表中的每个订单,您都需要在 Deliveries 表中添加/生成一条记录。现在,当您手动添加交货(使用表单)时,我想没有与之关联的订单,因此没有客户名称。在这种情况下,唯一的解决方案是在上述表单中添加一个名为 CustomerName 的字段(我想手动插入交付的人知道客户的姓名)和您需要的任何其他字段,如果您的业务逻辑需要它您可以使用与插入的交货相同的 OrderNo 创建一个“虚拟”订单。

    【讨论】:

      猜你喜欢
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多