【问题标题】:Show All Records For Given Field Filter In Access 2010 Table在 Access 2010 表中显示给定字段过滤器的所有记录
【发布时间】:2015-08-20 03:15:54
【问题描述】:

希望这会有意义...我在 Access 2010 中有一个表格,其中包含供应商列表及其在供应商处的联系人以及我的工作地点。 POC 的数量各不相同,从 1 到 4 不等。该表的设置使每个 POC 位于单独的一行。

供应商可以有一个联系人,但工作可以有三个不同的联系人,反之亦然。

我想要发生的是,当我从表单上的组合框中选择一个值时,需要显示所有相关的 POC,而不是一个一个地循环浏览它们。

例如,Supplier1 在他们的工厂有两个 POC,而我们在我们的工厂有三个。我想让组合框在表格中找到 Supplier1,然后在文本框中显示该供应商的所有联系人(他们的设施和我们的设施)。

用户将能够编辑联系人信息,如果不是太难,还可以添加/删除联系人。

我确信以前有人问过与此类似的问题,但是我无法通过谷歌搜索/此网站找到解决方案。如果需要,我对 VBA 很满意,可以使用它,但绝不是专家。我对 SQL 完全不熟悉,并且希望尽可能避免朝那个方向发展。

我必须小心我提供的任何数据,但如果您需要查看数据或类似内容,我会尽我所能。

Supplier    Code    Part    Supplier Contact   Procurement Contact  QC Contact
Ajin        AKVN            Patrick                 Yong                 Jack   
Ajin        AKVN            Chase                   Yong                 Jack   
Autoliv     AMNP   Seatbelt Daryl                   James                Lewis  
Bosch       AG48            Hancheul                Kevin           
Carlex      AKJ5  QTR Glasses  Bob                  Joy                   Zack  
Continental ANKC            Jacob           
KSR       C03A05 Brake Pedal Jose                   Paul                 David
KSR       C03A05 Brake Pedal Jose                  Paul                  Gary
KSR      C03A05  Brake Pedal Jose                  Paul                  Steven
KSR      AG5Z   Accelerator Pedal Jack             Paul                  David
KSR      AG5Z   Accelerator Pedal Jack             Paul                  Gary
KSR     AG5Z    Accelerator Pedal Jack             Paul                 Steven
KSR     AG5Z    Accelerator Pedal Cory             Paul                 David
KSR     AG5Z    Accelerator Pedal Cory             Paul                 Gary
KSR     AG5Z    Accelerator Pedal Cory             Paul                 Steven

【问题讨论】:

  • 请在您的表格中添加一些示例数据。如果供应商和 POC 在一个表中,则需要将它们拆分。
  • 我为我对此的无知而道歉,但是我如何在这里保存文件?如果它需要类似于 Dropbox 或类似程序的东西,那么由于网络限制,我将无法使用
  • @ColeStratton 你不能发布文件本身。您可以将数据粘贴到问题正文(一个有代表性的子集)中并对其进行格式化,使其看起来不错/可行。
  • 表格已以我能得到的最佳格式添加
  • 看起来这应该是两张单独的表格,一张用于您的用品,一张用于联络点。但是,无论哪种方式,您是否尝试过在数据表视图中使用子表单来显示与所选供应商相关的 POC?

标签: ms-access vba ms-access-2010


【解决方案1】:

您的表格需要大量标准化(例如,请参阅 What is Normalisation (or Normalization)?http://r937.com/relational.html

我建议(注意:我不确定供应商/代码/零件的关系):

- tSupplier
SupplierID   SupplierName
1            Ajin
2            KSR

- tParts
PartID     SupplierID   Code      Part
1          1            AKVN
2          2            C03A05    Brake Pedal 

- tContactTypes
TypeID    Type
1         Supplier 
2         Procurement 
3         QC

- tContacts
ContactID  SupplierID  TypeID  ContactName
1          1           1       Patrick
2          1           1       Chase
3          1           2       Yong
4          1           3       Jack

等等。 每个表的第一列是主键,一个自动编号字段。 所有其他 ID 列都是外键,链接到父表。

现在您可以为供应商提供一个组合框,它提供供应商 ID。
这样,您就可以过滤联系人并将其显示在数据表子表单中。
要么全部在一个表中,以 ContactTypes 作为列,要么在三个子表单中,每个子表单都由一个 ContactType 过滤。

为了能够添加新联系人,请使用BeforeInsert 事件来分配当前的供应商ID。

【讨论】:

  • 代码应该是供应商独有的。我意识到在我上面的例子中这是违反的。有没有办法解决这个问题?
  • 是的,我不确定 Code 是供应商代码还是零件代码。只需将其移动到它所属的表中即可。而且我假设供应商可以有多个零件,因此零件属于单独的表格。引用上面的第一个链接,“规范化基本上只是常识”。想想你储存的物品/东西/任何东西:供应商、零件、联系人。这些东西决定了表的结构及其关系。
  • 除此之外,我还必须获取通过 Excel 发送的每日报告并导入该数据库。我可以将记录附加到表的末尾没问题,但是为该表设置关系会导致我出现问题。如果我让 Access 在导入时添加主键会解决问题吗?我会将导入数据中的供应商字段链接到上面建议的供应商表。
  • 如果导入数据没有可作为主键的列,那么可以,让 Access 创建一个自动编号字段作为 PK。没有看到桌子,我真的不能告诉你更多。
  • 导入表有 25 个字段的数据,所以在这里发布它会太多。我让访问添加了主键,但是它仍然说关系必须在具有相同数据类型的相同数量的字段上。导入数据中的供应商字段为文本格式。导入数据中的供应商字段最终将根据当前字段中的内容进行更新。如果您确实需要查看表格,那么我会努力将其张贴在这里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 2014-10-07
相关资源
最近更新 更多