访问:如果值为 true,则显示(布尔)字段名称和描述的列表

Posted

技术标签:

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

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

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

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

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

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

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

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

【问题讨论】:

【参考方案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 个字段放在一个表中,或者创建一个必须不断添加字段的表。如果您以这种方式创建数据库,那么您做错了。

【讨论】:

非常感谢您抽出时间来写这一切。使用第三个“交叉引用”表确实让事情变得更容易!

以上是关于访问:如果值为 true,则显示(布尔)字段名称和描述的列表的主要内容,如果未能解决你的问题,请参考以下文章

Velocity !$ 和$!区别

mongodb的集合操作

66.类型转换

如果字段值为空,则显示破折号

在具有布尔值的 KnockoutJS 中显示隐藏 div 并应用 css 规则

c++如何定义布尔型数组使其初始值为true?