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

时间:2018-08-10 14:03:27

标签: forms ms-access field

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

每种化学物质都与许多HazardPrecautionary陈述相关。

我有一个表格“ Hazards”,通过“ ProductNumber”字段链接到表格“ Products”。在“危险”中,有很多“是/否”字段,称为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,但我真的不知道从哪里开始。

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

1 个答案:

答案 0 :(得分:2)

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

不过,我可以给您一些帮助的指点。首先,您通常只想写入一次数据。您接触数据的次数越少,您的生活就越好。因此,在这种情况下,您将需要一个仅包含Hazzards及其说明的表:

tbl危险:

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

由于危险编号是唯一的,因此HazardNumber字段将充当其自己的“键”。如果您有一个非唯一数据表,则应在其中添加一个ID字段,以使其易于引用。

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

tblProducts:

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

这是假定ProductID是唯一的。也就是说,您将永远不会有两种具有相同ID或条形码或用于分类产品的产品。如果您可能有2个具有相同ID的产品,请在此处添加一个ID字段并将其设置为AutoNumber。

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

tblProductHazardCrosswalk:

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

您在最后一张表上放置了一个ID,因为如果必须删除或编辑一条记录,则说“ Where ID = 20”比“ Where ProductID = XX110 and HazardID = H160”要容易。排队后,您可以使用人行横道表在表格和报表上将危害与产品连接起来。实际上,您可以将一个子表单放到“产品”表单上,并按ProductID进行过滤,并且可以轻松地添加,编辑和删除与产品相关的危害。

永远记住;在领域上,少即是多。不要在表中放置75个字段,也不必在必须继续添加字段的地方创建表。如果您以这种方式创建数据库,那就错了。