需要缩小出现在子窗体中的查询结果,然后选择并显示平均值



我需要使用其他关键字搜索框缩小查询结果的范围(显示在子窗体中)。然后,对于这些结果,我需要能够选择所需的记录,并显示在主搜索表单中选择的记录的计算平均值。

我做了一个即时关键字搜索查询(在您键入时搜索以实时显示),并构建了一个带有查询子表单的表单来显示结果。还尝试为第二个搜索关键字搜索框(标题为"过滤器")重复代码的相同部分,但它会根据原始数据而不是结果数据保持重新查询。

下面的查询中的代码...。

SELECT [Combined Source Data].*
FROM [Combined Source Data]
WHERE ((([Source] & [Class Code] & [Classification Title] & [Department/Division]) Like "*" & [Forms]![SearchForm]![Search].[Text] & "*" And ([Source] & [Class Code] & [Classification Title] & [Department/Division]) Like "*" & [Forms]![SearchForm]![FILTER].[Text] & "*"));

未绑定搜索框中的代码,该搜索框对事件过程进行了更改。

Private Sub Filter_Change()
DoCmd.Requery "SearchQuery subform"
End Sub
Private Sub Search_Change()
DoCmd.Requery "SearchQuery subform"
End Sub

第二个关键字搜索应筛选结果,但不会。请帮忙---几天来一直在试图破解这个......

提前感谢!

当对 Access 组件的引用嵌入到 SQL 语句中时,通常会禁止显示此类引用发生的任何错误。 给定的 SQL 查询就是这种情况,因为除非控件具有焦点,否则无法访问Textbox.Text属性。 例如,如果您尝试从其他 VBA 代码引用控件

Private Sub OtherField_GotFocus()
Debug.Print "Search: " & Me.Search.Text
End Sub

你应该得到一个错误

错误 2185:除非控件具有焦点,否则无法引用控件的属性或方法。

由于以相同的方式引用两个单独的 Textbox 控件,因此这两个控件不能同时具有焦点,因此查询中始终会有一个或另一个值未正确包含。问题文本说

。它根据原始数据而不是结果数据保持重新查询。

但我怀疑查询会解析为类似... Like "*search_term*" and ... Like "**"... Like "**" and ... Like "**"的东西,具体取决于具有焦点的控件,因此 AND 运算符的一侧始终为 True。


尽管错误消息具有通用性,但可以在控件没有焦点的情况下引用Value属性(因此在 SQL 语句中)。 您的情况的缺点是它不会随着每次新的击键而立即更新,因此也不会随着每次触发Change事件而立即更新。 您需要设计一种不同的方法来实现文本框的"即时"方面,或者您必须采用另一种方法,如传统的搜索按钮。

最新更新