【问题标题】:Dynamic combo box issues with access form访问表单的动态组合框问题
【发布时间】:2018-04-25 11:48:04
【问题描述】:

我正在 Access 中处理这个数据库。

表格如下:

在此表中,fromid 和 toid 的转换必须匹配,这就是我将其结构化为这样的原因。也就是说,如果我选择了 MT,那么我只能转换为另一个 MT 或 ST。如果我在基列中选择 ST,那么我可以转换为另一个 ST 或 MT。

我在下面创建了这个表单。它有 2 个组合框。第二个组合框受第一个组合框的选择限制。也就是说,如果我在第一个组合中选择 MT,那么第二个组合框中唯一可用的选项是 MT 或 ST。如果我选择 KG,那么组合框 2 将限制为另一个 KG 或 LB。

但问题是,如果我从组合框 1 中选择一个,则不会显示匹配对。也就是说,如果我选择 MT,它不会限制为 MT 或 ST,而是显示其他两个值,如 L 和 GLL。

我已附上数据库的副本。 Here is the link to the database I am testing with

以下是每个代码的快照:

【问题讨论】:

  • 请提供一个可重现的示例,说明您是如何实现这一目标的,但不共享整个数据库。下载访问文件是我希望尽可能避免的安全风险。
  • 我用新信息更新了它
  • 您正在更改 VBA 中 Combo2 中列的顺序。这可能是您的错误的原因。此外,您正在重新查询该代码中的 Combo0,而不是 Combo2

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


【解决方案1】:

您的从 fromID 到 TOID 的 ID 系统对我来说似乎没有任何意义。首先,这对总是相同的。这样做的预期好处是什么?

替代方案,只需使用 BaseTo 的 Text 列,并调整 combo0 的属性:

行来源:SELECT DISTINCT base FROM tblconversions;

绑定列:1

以及更新后方法

Private Sub Combo0_afterUpdate()
    Dim stoSource As String

    stoSource = "SELECT DISTINCT tblconversions.To FROM tblconversions WHERE tblconversions.to = '" & Me.Combo0.Value & "'"

    Me.Combo2.RowSource = stoSource
    Me.Combo2.Requery
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2019-06-08
    • 2011-02-07
    相关资源
    最近更新 更多