0

我有一个表单,可以按用户、日期范围和列的特定值过滤数据,具体取决于是否选中了复选框,如下所示;

    strWhere = " WHERE [user] in (" & Left(strIN, Len(strIN) - 1) & ") And [Month] Between [forms]![frm_user]![txtStartDate] And [forms]![frm_user]![txtEndDate]"

    If Me!checkbox = True Then
        strtcheck = " (Satified Vs Dissatisfied Like Dissatisfied) "
    End If

    strSql = strSql & strwhere & strtcheck 

所以我想要但我无法让它工作的是,如果 Me!checkbox 为真,那么 Satified Vs Dissatisfied 必须等于 Dissatisfied 然后我想将它传递给 strSql,但是当我在 Access 中运行它时它不起作用,有人可以帮忙吗?

4

1 回答 1

1

如果您的字符串旨在包含WHERE名为Satified Vs Dissatisfied的字段的条件,请将字段名称括在方括号中。并将您与该字段进行比较的字符串括在引号中。

strtcheck = " ([Satified Vs Dissatisfied] Like 'Dissatisfied') "

实际上,该条件不使用模式匹配,因此您可以只使用=而不是Like.

strtcheck = " ([Satified Vs Dissatisfied] = 'Dissatisfied') "

此外,您可能需要包含 SQLAND以将该条件与其他WHERE条件结合起来。

strtcheck = " AND ([Satified Vs Dissatisfied] = 'Dissatisfied') "
于 2013-07-12T13:44:11.337 回答