打开报告使用三个组合框过滤器

时间:2017-03-01 04:57:03

标签: access-vba ms-access-2010

我有3个组合框来过滤数据,然后我想打开命令按钮来打印预览.. 如果我使用2个组合框就可以解决问题但是当我使用三个组合框时,报告是空白的......那么代码有什么问题吗?这是我使用的代码:

Dim strWhereCondition As String
strWhereCondition = "[month] = '" & Me.cbmonth.Value _
                    & "' and [Works] = '" & Me.cbwork.Value _
                    & "' and [Works] = '" & Me.cbwork2.Value & "'"

Debug.Print strWhereCondition
DoCmd.OpenReport "Month List", View:=acViewPreview, _
WhereCondition:=strWhereCondition

和我的表单的重新查询

SELECT *
FROM MyTable 
WHERE (month = Forms!nameForm!cbmonth
OR Forms!MeForm!cbwork IS NULL)
And (works = Forms!nameForm!cbwork
OR Forms!nameForm!cbwork IS NULL)
AND (works = Forms!nameForm!cbwork2
OR Forms!nameForm!cbwork2 IS NULL);

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:-1)

月份是一个数字,所以请尝试:

strWhereCondition = "[month] = " & Me.cbmonth.Value _
                & " and [Works] = '" & Me.cbwork.Value _
                & "' and [Works] = '" & Me.cbwork2.Value & "'"

编辑:月份是文字。

但是,[Work]应该匹配两个可能不同的值:

& "' and [Works] = '" & Me.cbwork.Value _
& "' and [Works] = '" & Me.cbwork2.Value & "'"

最有可能是:

& "' and [Works] = '" & Me.cbwork.Value _
& "' and [SomeOtherField] = '" & Me.cbwork2.Value & "'"