【问题标题】:Dynamic Union Query with Primary Key带主键的动态联合查询
【发布时间】:2020-07-14 16:30:34
【问题描述】:

我有一个联合查询,它是对涵盖不同类型项目的一组表的动态引用。我想创建一个链接表(通过查询),该表将具有手动输入,将使用联合查询作为贡献参考列表。现在当然没有主键,记录集将无法更新。我希望联合查询保持项目的动态列表,但没有主键来链接辅助表,就没有机会更新,即允许在第二个表上输入数据。

它适用于静态创建的表,即由联合生成的表,但它会很好而且干净,我的强迫症会通过简单地保持它来缓解,我认为参数化管理总是更好。

联合查询当然很简单...cut 这里可以分配主键吗? ProdID 在所有表中都是唯一的。目前 Cat_Code 和 Item_Code 是支持表中的复合主键

SELECT DataSheet_Products_NBC.Cat_Family, DataSheet_Products_NBC.Cat_Code, DataSheet_Products_NBC.Cat_Name, DataSheet_Products_NBC.ProdID, DataSheet_Products_NBC.Item_Code, DataSheet_Products_NBC.Item_Desc, DataSheet_Products_NBC.Unit
FROM DataSheet_Products_NBC
UNION 
SELECT DataSheet_Estimating_Statistics.Cat_Family, DataSheet_Estimating_Statistics.Cat_Code, DataSheet_Estimating_Statistics.Cat_Name, DataSheet_Estimating_Statistics.ProdID, DataSheet_Estimating_Statistics.Item_Code, DataSheet_Estimating_Statistics.Item_Desc, DataSheet_Estimating_Statistics.Unit
FROM DataSheet_Estimating_Statistics
UNION SELECT  DataSheet_Products_Other.Cat_Family, DataSheet_Products_Other.Cat_Code, DataSheet_Products_Other.Cat_Name, DataSheet_Products_Other.ProdID, DataSheet_Products_Other.Item_Code, DataSheet_Products_Other.Item_Desc, DataSheet_Products_Other.Unit
FROM DataSheet_Products_Other;

我最终需要一个查询,包含联合查询,主键和一个可以接受数据的数据表,即可更新。

【问题讨论】:

  • 在查询中包含 UNION 查询会导致数据集不可更新。期间。
  • 嗯。好的。我仍然想知道如何动态地将键分配给联合查询。可以在创建联合查询时更改表或某些命令创建键吗?由于它是一个虚拟对象,我可以想到它还有什么可能
  • 无法在 UNION 查询中分配 PK。我不明白你为什么要这样做。仍然可以在另一个查询中使用 UNION 并加入常见的 ProdID 字段。 ProdID 是 UNION 中的 FK,它将加入其他表中的 PK。可以使用 UNION 作为 INSERT 到另一个表或 MAKE TABLE 的源。
  • 酷,感谢您提供的信息...这就是我使用联合的方式,但是当我深入研究(访问)时,它对没有更新的主要抱怨是链接表无法在没有 PK 的情况下更新加入。我最终只运行 INSERT 并添加列来重置表,工作正常,但现在它是静态的,即在我对工会成员进行更新时没有动态链接等。干杯

标签: sql vba ms-access


【解决方案1】:

您不能直接向 UNION 查询插入新行
因此,您将在子表单上显示 UNION
然后在下面放Text控件输入新行
Table Name, Cat_Family, Cat_Code, Cat_Name, ProdID, Item_Code, Item_Desc, Unit
添加一个按钮以插入新行
重新查询子表单查看

【讨论】:

  • 谢谢西永。不确定我是否清楚:用户永远不会输入任何 Cat_family 等:它们是只读的动态列表。我想做的是让用户填写 Obj_GlobID、Storey 等,这是一个相关的表。 AC_BOQ_AddDel 表一开始是完全空的。
猜你喜欢
  • 2022-12-10
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多