复选框过滤器和其他过滤器

时间:2017-01-03 13:37:55

标签: sql ms-access

我正在尝试在带有SQL的ms-access查询中应用复选框过滤器。这是一个基于表单字段的多重过滤查询,基于文本字段的过滤器很好,你可以在下面的代码中看到,但我无法弄清楚如何使复选框过滤器工作,我尝试了很多例子在线,但没有一个工作。我试过的其中一件事是:AND(Len([Formulários]![frmFC]![cbxPago]&'')= 0或pago喜欢''&'> 0'&'')

欢迎使用我目前使用的更好的代码;)

PARAMETERS [Formulários]![frmFC]![txtCriadoEm] Text ( 255 );

SELECT tabFcGas.criadoEm, tabFcGas.Cliente, tabFcGas.valor, 
       tabFcGas.vencimento, tabFcGas.parcela, tabFcGas.totalParcelas, 
       tabFcGas.pago, tabFcGas.classificacao, tabFcGas.obs, tabFcGas.nf
FROM tabFcGas
WHERE (Len([Formulários]![frmFC]![txtCriadoEm] & '') = 0 
       OR criadoEm Like '*' & [Formulários]![frmFC]![txtCriadoEm] & '*') 
  AND (Len([Formulários]![frmFC]![cmbCliente] & '') = 0 
       OR Cliente Like '*' & [Formulários]![frmFC]![cmbCliente] & '*') 
  AND (vencimento BETWEEN NZ([Formulários]![frmFC]![txtDataIni],#01/01/2001#) 
       AND NZ([Formulários]![frmFC]![txtDataFin],#01/01/2050#)) 
  AND (Len([Formulários]![frmFC]![cmbInvestimento] & '') = 0 
       OR classificacao Like '*' & [Formulários]![frmFC]![cmbInvestimento] & '*') 
  AND (Len([Formulários]![frmFC]![txtVencimento] & '') = 0 
       OR Vencimento Like '*' & [Formulários]![frmFC]![txtVencimento] & '*')

1 个答案:

答案 0 :(得分:0)

复选框是1(已选中)或0(未选中)。您也可以使用True进行检查,将False用于未选中。

您可能应该创建一个单独的测试查询,以确保您的SQL正确,并在此查询中只测试复选框。如果它有效,那么您的语法很好,您可以将其添加到更长,更复杂的查询中。