【问题标题】:Access: Displaying a list of (boolean) field names and descriptions if their value is true访问:如果值为 true,则显示(布尔)字段名称和描述的列表
【发布时间】:2018-08-10 14:03:27
【问题描述】:

我正在 Access 中创建一个数据库来管理我们的化学产品库存并记录谁使用它们。我还希望它显示有关产品的一些一般信息。

每种化学物质都与许多HazardPrecautionary 语句相关联。

我有一个表“危害”,通过“产品编号”字段链接到表“产品”。在“危险”中,有很多是/否字段,称为 H200、H201、H202、...,声明为描述。 (我必须创建一个“危害”和一个“注意事项”表并将其链接到“产品”表,因为 Access 的每个表限制为 255 个字段)

我想要在我的 ProductForm 中(显示具有特定 ProductNumber 的特定产品的信息)是有一个文本框或一个列表框或包含所有 H 和 P 语句的东西,它们的形式为:

H206:火灾、爆炸或喷射危险:如果减少脱敏剂,则爆炸风险增加
H229:压力容器:受热可能爆裂

我认为可以使用以下组合来完成 Displaying field's description in label or textbox on formhttps://community.spiceworks.com/topic/429306-access-only-display-true-items-in-report 但我真的不知道从哪里开始。

我也不知道这是否是组织此类数据的最佳方式,所以如果有更好的方式,请告诉我:)

【问题讨论】:

    标签: forms ms-access field


    【解决方案1】:

    数据库设计是一门艺术,与一门科学相结合。数据库架构师获得高薪是有原因的。这就像在观看 Youtube 视频后尝试做牙科一样。

    不过,我可以给你一些有用的建议。首先,您通常只想写入一次数据。您接触数据的次数越少,您的生活就越好。因此,在这种情况下,您需要一张只有 Hazzards 及其描述的表格:

    tbl危害:

    HazardNumber    HazardDescription
    H101            Fire hazard
    H102            Compression hazard
    etc....
    

    由于危险编号是唯一的,因此危险编号字段将充当它自己的“键”。如果您有一个非唯一数据表,那么您应该在其中添加一个 ID 字段以便于参考。

    现在您有了产品表。它看起来像这样:

    tbl产品:

    ProductID      ProductName        Manufacturer     Cost
    XX302          Some Product       ABC Company      750.00
    YY110          Another Product    XYZ Company      500.00
    etc...
    

    这是假设 ProductID 是唯一的。也就是说,您永远不会有 2 件产品具有相同的 ID 或条形码或用于对产品进行编目的任何内容。如果您可能有 2 个具有相同 ID 的产品,请在此处添加一个 ID 字段并将其设置为自动编号。

    最后,您有一个“交叉引用”表,其中包含所有产品/危害匹配项:

    tblProductHazardCrosswalk:

    ID      ProductID        HazardID
    1       XX302            H101
    2       YY110            H101
    3       YY110            H102
    etc...
    

    您将 ID 放在最后一个表上,因为如果您必须删除或编辑记录,说“Where ID = 20”比“Where ProductID = XX110 and HazardID = H160”更容易。排列好后,您可以使用人行横道表在表单和报告中将危害加入到产品中。事实上,您可以将一个子表单放到您的 Products 表单上,该表单按 ProductID 进行过滤,并且您可以非常轻松地添加、编辑和删除与您的产品相关的危害。

    永远记住;涉及领域时,少即是多。不要将 75 个字段放在一个表中,或者创建一个必须不断添加字段的表。如果您以这种方式创建数据库,那么您做错了。

    【讨论】:

    • 非常感谢您抽出时间来写这一切。使用第三个“交叉引用”表确实让事情变得更容易!
    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多