Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在筛选器字符串中使用变量_Ms Access_Vba - Fatal编程技术网

Ms access 在筛选器字符串中使用变量

Ms access 在筛选器字符串中使用变量,ms-access,vba,Ms Access,Vba,我有一个从表中返回数据的子窗体。但是,我希望通过使用filter属性进一步筛选此数据 我有一组单选按钮、组合框和一个case语句,根据单选按钮的选择将要使用的变量设置为正确的值 我用来填充变量的代码工作得很好,但我不能使用vba设置过滤器,除非我手动键入所需的字符串 我假设我的问题是我的过滤器字符串在语法上不正确,但我不确定如何。可能与文本分隔符有关 Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = Filter

我有一个从表中返回数据的子窗体。但是,我希望通过使用filter属性进一步筛选此数据

我有一组单选按钮、组合框和一个case语句,根据单选按钮的选择将要使用的变量设置为正确的值

我用来填充变量的代码工作得很好,但我不能使用vba设置过滤器,除非我手动键入所需的字符串

我假设我的问题是我的过滤器字符串在语法上不正确,但我不确定如何。可能与文本分隔符有关

Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = Filterby = FilterCrit
Forms![frmPendingActions]![qryPendingAction subform].Form.FilterOn = True

对于这个问题,假设Filterby=[Reporter]和FilterCrit=false Name

是的,我认为问题与文本分隔符有关。代码应类似于以下内容:

Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = "[Reporter] ='" &  FilterCrit  & "'"
过滤器的构建应该与where子句完全相同,而不使用where这个词。如果要筛选的列具有文本数据类型,则需要将条件括在单引号或双引号中。如果列是日期数据类型,则需要将其括在#中。如果列是数字数据类型,则不需要将其括起来

如果不希望总是按报告器列进行筛选,则可以使用If语句或select case语句构建字符串,然后将该字符串应用于表单筛选器

例如:

If [somecondition] Then
   strFilter="[Reporter]='" & FilterCrit & "'"
Else
   strFilter="[ID]=" & 0
End If
Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = strFilter

我希望这能有所帮助。

谢谢,这很有希望。过滤器似乎工作正常,但我想你可能误解了我的问题。我要筛选的列也是一个变量,我将如何处理它?该列是一个文本数据类型,由wayNevermind,我调整了我的代码围绕您的语句的其余部分。