【问题标题】:Refresh MS Access Form/Query Based On Combobox Value基于组合框值刷新 MS Access 表单/查询
【发布时间】:2012-12-13 03:20:12
【问题描述】:

很简单的解释。我有一个包含 10 个条目的表,5 个条目是 2010 年,5 个条目是 2011 年。

在我的查询中,我使用 Like *2010 过滤掉所有等于 2010 的条目并仅显示这些记录。

在我的表单上,我的组合框填充了每个独特的年份(来自不同的表)。所以我的组合框值是 2010 和 2011。

是否有可能,当我选择 2011 年时,我修剪了正确的 4 个字符并用作我的 Like 条件来刷新和重新查询表单,所有这些都在 VBA 中完成?

【问题讨论】:

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


    【解决方案1】:

    只要包含该控件的表单处于打开状态,您就可以在 Access 会话中运行的查询中引用该控件的值。

    SELECT *
    FROM YourTable
    WHERE date_field_as_text Like "*" & Forms!YourForm!YourCombo;
    

    因此,也许您可​​以使用类似的查询作为表单的记录源,并在组合框的更新后事件中执行Me.Requery

    如果这还不够接近您想要的,请向我们提供有关所涉及字段的数据类型的更多信息。在您的问题中添加表格数据的简短示例也会有所帮助;请明确“日期”字段是文本还是日期/时间。

    【讨论】:

    • 我认为这可能是我正在寻找的...在 VBA 中引用表并重新查询。如果这没有帮助,我会更新我的原始帖子。
    • 哈哈...我被卡住了...我对 SQL 编码还是很陌生,但是我应该在哪里添加您发布的代码?
    • 好吧,是的,我找到了 SQL 部分……告诉你我还很新。我可以修剪组合框字符串的右 4 个字符吗?组合框中的大多数条目将是 test2010、test2011、test2012,年份部分是我将重新查询的依据。
    • 是的:Right("test2010", 4) 会给你“2010”。所以我想你可能想要Right(Forms!YourForm!YourCombo, 4)
    • 好的。发布一个新问题,向我们展示您现在正在尝试的细节。包括任何错误消息的文本,并告诉我们代码中的哪一行触发了该错误。如果没有错误消息,请告诉我们您希望它做什么以及它做什么。我怀疑你可能已经接近解决这个问题了。 :-) 通过使用 ms-access 而不是 ms-access-2010 标记它,您可以更快地获得更多关注您的问题
    【解决方案2】:

    是的,这是可能的。只需将您的内容添加到“YourComboName.After_Update”即可。 查找在显示表单之前触发的表单事件。按照 HansUp 的建议构建您的查询。

    【讨论】:

      猜你喜欢
      • 2017-03-02
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      相关资源
      最近更新 更多