2017-01-03 4 views
1

Ich versuche, einen Checkbox-Filter in einer MS-Access-Abfrage mit SQL anzuwenden. Es ist eine Mehrfachfilterabfrage basierend auf Feldern eines Formulars, die Filter basierend auf Textfeldern sind in Ordnung, wie Sie in dem Code unten sehen können, aber ich kann nicht herausfinden, wie man einen Checkboxfilter funktioniert, ich habe viele Beispiele ausprobiert online, aber keiner von ihnen hat funktioniert. Eines der Dinge, die ich versuchte, war: AND (Len ([FORMULARIOS] [frmFC] [cbxPago] & '') = 0 oder pago Like '' & '> 0' & ''!)Checkbox-Filter unter anderen Filtern

Bessere Code für das, was ich zur Zeit bin mit ist willkommen;)

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] & '*') 

Antwort

0

Ankreuzfelder entweder 1 (aktiviert) oder 0 (nicht markiert ist). Sie können auch True für checked und False für unchecked verwenden.

Sie sollten wahrscheinlich eine separate Testabfrage erstellen, nur um sicherzustellen, dass Ihr SQL korrekt ist, und in dieser Abfrage nur das Kontrollkästchen Stück testen. Wenn es funktioniert, ist Ihre Syntax in Ordnung und Sie können sie zu Ihrer längeren, komplexeren Abfrage hinzufügen.

+0

Danke für Ihre Hilfe! Ich löste das Problem, das durch Teile funktioniert, der Funktionscode ist: WO (iif (Formen! FrmFC! CmbPago = "Pago", Pago ZWISCHEN # 01/01/2001 # UND # 01/01/2050 #, iif (Formen! FrmFC ! cmbPago = "Aberto", Pago IST NULL, Pago IST NULL ODER ""))) – CEIEC

+0

Wenn meine Antwort hilfreich war, klicke bitte auf das Häkchen auf der linken Seite, damit ich Punkte bekomme. Vielen Dank! –

Verwandte Themen