【问题标题】:Use form to create multiple fields in Access 2010在 Access 2010 中使用表单创建多个字段
【发布时间】:2014-02-27 03:18:40
【问题描述】:

所以我有一个表格,当供应商想要运送给我们时,我会填写表格。这是一个 Excel 表单,然后我将其导入 Access,以便运行报告。有时当他们发回表单时,我必须手动将数据输入到我们的数据库中。

表格如下所示:

中间部分只是为了举例,所以它是一个带有文本的矩形。

所以在我进入中间部分之前,一切似乎都很简单。请参阅我的 excel 表格,我有一个用于多个 PO 和单位的部分。所以基本上每批货物可以有一对多的采购订单和单位。目前,我可以使用在表单上为每个采购订单重新输入信息的冗余方法来完成这项任务。但我想让这个简单。

所以手头的任务是我想要一个用于 PO 和 Units 的表单域,我可以在其中输入多行信息,以便当我点击提交按钮时。它以相同的供应商信息出现在数据库中的不同行上。

因此,如果我填写表格,中间部分会显示:

PO         | Units
111111        22
222222        33
333333        44

当我点击提交时,我希望它在单独的行中将其余的表单信息附加到每个 PO,所以它会像:

Vendor | City    | State |    PO    | Units
Nike     Memphis    TN     111111     22
Nike     Memphis    TN     222222     33
Nike     Memphis    TN     333333     44

那么我该如何完成这项任务呢?

【问题讨论】:

    标签: forms ms-access


    【解决方案1】:

    根据您对问题的描述以及数据最终如何存储在 Access 中的示例,在我看来,您将 Access 用作电子表格而不是数据库。这没关系,但您可能需要考虑对数据进行规范化,以充分利用数据库的强大功能。

    例如:

    • 创建一个 Vendors 表,其唯一目的是保存与您合作的每个 Vendor 的详细信息。一个非常基本的实现将有一个 ID 字段来唯一标识每个供应商,并有一个 Name 字段作为供应商名称。
    • 如果供应商只有一个位置,您可以也将城市、州、邮政编码和电子邮件存储在同一个供应商表中,但我怀疑有一个单独的 VendorLocation 或 VendorAddress 表会更好适合长期使用。
    • 创建一个 VendorShipment 表来跟踪您的模型的更高级别信息,例如:

      • ShipmentID(此表的主键)
      • VendorID(返回 Vendor 表的外键)
      • 就绪日期
      • 运营商
      • 预计费用
      • 货运类
      • 跟踪 #
      • 预计运输时间
    • 最后,创建一个 VendorShipmentDetail 表,跟踪每批货物的信息,包括:

      • ShipmentDetailID(此表的主键)
      • ShipmentID(返回到 VendorShipment 表的外键)
      • PO
      • 单位
      • 您想要或需要跟踪的任何其他详细信息

    以标准化方式组织和存储数据最终将有助于简化您的数据输入\数据管理流程,并可能带来更好的用户体验。

    例如,您不必每次都输入供应商名称、地址信息等,而是使用与Vendor 表相关联的组合框控件。如果供应商存在于表格中,您从列表中选择它并且您已经有了地址信息,无需每次重新输入。如果供应商不存在,您只需输入一次(可能在供应商屏幕上维护每个供应商的详细信息)并在将来使用该信息。

    然后您将使用查询将信息重新组合在一起以用于报告目的(非规范化信息)。

    数据库设计的艺术可能需要一段时间才能掌握,但一个很好的起点可能是查看 Microsoft 多年来维护的 Northwind 数据库。它提供了一些示例,您可以立即从中借鉴,以实际了解如何在 Access 中使用规范化。你可以在这里找到更多信息:http://office.microsoft.com/en-us/templates/northwind-sales-web-database-TC101114818.aspx

    【讨论】:

      猜你喜欢
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多