【问题标题】:MS Access Forms datasheet to populate all matching records in a dropdown from another tableMS Access Forms 数据表以填充另一个表的下拉列表中的所有匹配记录
【发布时间】:2020-01-01 20:44:59
【问题描述】:

我正在使用 MS Access 2013 表单。

我有 2 张桌子:TblATblB

两者都有多个引用和值,我想做的是有一个TblB 的数据表,并在同一个数据表上有一个组合框,它将显示来自TblA 的字段OrigAmt 匹配TblB

这样做的目的是因为除了用户需要查看所有值的参考之外,表之间没有链接,因此他们可以选择TblA 中与该记录相关的值,然后选择TblA将使用来自 TblB 的值进行更新。

我尝试使用设计中行源上的查找字段,其中来自TblA 的引用等于TblB,但数据表似乎没有按行级别过滤。

SELECT DISTINCT TblA.Reference, TblA.OriginalAmount
FROM TblA INNER JOIN TblB ON TblA.Reference = TblB.Reference

我确信这可能以前已经回答过了,但在花了几个小时之后我似乎无法解决这个问题。

【问题讨论】:

  • 但是您不是要从 tblA 获取所有引用以设置引用吗?当然你需要“SELECT DISTINCT TblA.Reference, TblA.OriginalAmount FROM TblA”
  • 只有与表 b 匹配的引用,因为 tblA 中可能有许多相同的引用,这就是我使用数量的原因。

标签: vba ms-access


【解决方案1】:

我设法让这个工作,但它有点难看,我在一个主窗体中使用了 2 个子窗体,在我的主窗体上添加了一个文本框来捕获从子窗体 (TblB) 中选择的内容,也为 TblA 做同样的事情。在第二个子表单(TblA 数据)上,我手动将引用输入到 Link Master/Child 字段中。最后,我添加了一个更新查询来使用 TblB 数据更新 TblA。希望这可以帮助其他人。

【讨论】:

    【解决方案2】:

    我想我知道你在问什么。首先,您需要获取所选的参考编号才能使用。最简单的方法是在表单中添加一个包含引用 (Control Source = Reference) 的文本框,然后将该文本框命名为“CurrentReference”。 如果您不想让用户看到,可以隐藏此文本框。

    现在只需在 SQL 中添加 where 子句:

    SELECT DISTINCT TblA.Reference, TblA.OriginalAmount
    FROM TblA WHERE TblA.Reference = CurrentReference
    

    现在更改您的组合框Enabled = False,以便用户无法手动操作它。组合框现在只显示对应于 TblB 中所选记录的原始金额。

    注意:现在您只显示一个值,您可以使用 TextBox 而不是 ComboBox。

    【讨论】:

    • 谢谢,但用户需要指定数量,因为没有不同/唯一的参考(多对多关系)。目前,子表单将显示 TblB 中的所有记录,并在 Tbla 数据的最后一行(数据表视图)中有一个组合框我的列数为 2,因此用户可以看到参考和数量,但我不希望选择每个引用仅与当前行相关)。
    • 好的,我想我明白了。您的问题是“数据表视图”。这个视图需要对面向用户的版本隐藏。您必须为您的用户构建适当的表单。您可以制作一个突出显示数据网格的表单,这是人们可能想要的视图。我用我的数据尝试了你的例子,它有效。查询返回预期的列表。您是否将其放入查询中并查看过?然后,您可以简单地在您希望该列表出现的任何元素中引用查询名称。
    • 抱歉,我不确定如何创建数据网格,我已经将 TblB 作为子表单,并使用 =[TblB_SF].[Form]![Reference] 添加了一个未绑定到带有隐藏未绑定文本框的 Mainform ] 但我不知道如何让我的子窗体上的未绑定组合框来调用文本框。我会考虑尝试制作一个数据网格,这样我就可以尝试你的方式,请多多包涵。谢谢。我可以添加一个简单的 Dropbox 文件来说明我想要实现的目标。
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 2017-06-13
    • 2021-09-09
    • 2020-01-11
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多