COMO EU FACO ESSE IFF NO WHERE

WEBIER 13/04/2011 13:37:36
#371214
Tenho o seguinte SQL:

 SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE COD_PEDIDO > 0 [Ô] & TIPO & [Ô] [Ô] & tipo_Cartao & [Ô] [Ô] & var_TipoPgto & [Ô] ORDER BY [Ô] & INDICE


coloquei um checkbox (chkEntrada)

tenho um campo chamando ENTRADA do tipo moeda na tabela PEDIDOS

preciso que quando eu marcar o checkbox (chkentrada.value = checked) entao ele me mostre todas os pedidos que possuem a entrada diferente de [Ô]R$ 0,00[Ô] e quando o check for desmarcado, ele me mostra todos os pedidos

como eu faço isso na mesma linha da SQL ??
SPRITU 13/04/2011 13:45:56
#371216
no final de todas as [Ô]condicoes[Ô] do seu where vc adiciona

 IIf(chKentrada.Checked=True,[Ô]AND ENTRADA <> 0.00[Ô],[Ô][Ô])


deve funcionar =)

só nao entendi direito essa query sua..

esses & TIPO

suponho que o valor de tipo seja algo [Ô]AND tipo = algumacoisa[Ô]

correto?
WEBIER 13/04/2011 15:58:19
#371227
Para nao confudir eu coloquei assim:
        SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE IIf(chkEntrada.value = checked, ENTRADA <> [ô]0.00[ô],[ô][ô] AND COD_PEDIDO > 0 )[Ô]


e tá dando erro!
LUIZCOMINO 13/04/2011 16:47:19
#371237
SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE IIf(chkEntrada.value = checked, ENTRADA <> [ô]0.00[ô],[Ô] AND COD_PEDIDO > 0[Ô] )[Ô]




tente agora
LUIZCOMINO 13/04/2011 16:49:16
#371238
ou

SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE IIf(chkEntrada.value = checked, [Ô]ENTRADA <> [ô]0.00[ô][Ô],[Ô] AND COD_PEDIDO > 0[Ô] )
FEDERHEN 13/04/2011 17:18:10
#371243
SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total [Ô] & _
[Ô]FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE [Ô] & _
[Ô]WHERE COD_PEDIDO > 0 [Ô]
If chkEntrada.value = checked Then SQL = SQL & [Ô] AND ENTRADA<>0 [Ô]
SQL = SQL & [Ô]ORDER BY [Ô] & indice
MARCELO.TREZE 13/04/2011 17:45:16
#371246
Resposta escolhida
O problema é que o check é um objeto fora da query, então seria assim

SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE [Ô] & IIf(chkEntrada.value = 1, [Ô]COD_PEDIDO > 0 AND ENTRADA <> [ô]0.00[ô][Ô],[Ô]COD_PEDIDO > 0[Ô])



veja se funciona



WEBIER 14/04/2011 09:53:32
#371299
Citação:

:
O problema é que o check é um objeto fora da query, então seria assim

SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE [Ô] & IIf(chkEntrada.value = 1, [Ô]COD_PEDIDO > 0 AND ENTRADA <> [ô]0.00[ô][Ô],[Ô]COD_PEDIDO > 0[Ô])



veja se funciona






quando está desmarcado o chkentrada ele nao dar erro.
quando está marcado ele dar o seguinte erro:
Tipo de dados incompartivel na expressão de critério

entao o erro tá em COD_PEDIDO > 0 AND ENTRADA <> [ô]0.00[ô]

OBS: o campo ENTRADA é do tipo moeda
MARCELO.TREZE 14/04/2011 10:02:17
#371302
esqueci que sua query está usando join

então seria algo assim

COD_PEDIDO > 0 AND CLIENTES.ENTRADA <> [ô]0.00[ô]

ou

COD_PEDIDO > 0 AND PEDIDOS.ENTRADA <> [ô]0.00[ô]

não sei em qual tabela está o campo entrada


XXXANGELSXXX 14/04/2011 10:04:59
#371303
Concaterna separado
if chkentrada.value = 1 then SQL = [Ô]SELECT CLIENTE.*, PEDIDOS.*, PEDIDOS.COD_PEDIDO AS var_CodPed, PEDIDOS.TOTAL AS var_Total FROM CLIENTE INNER JOIN PEDIDOS ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE WHERE COD_PEDIDO > 0 AND ENTRADA <> [ô]0.00[ô][Ô]
WEBIER 14/04/2011 10:21:58
#371307
Citação:

:
esqueci que sua query está usando join

então seria algo assim

COD_PEDIDO > 0 AND CLIENTES.ENTRADA <> [ô]0.00[ô]

ou

COD_PEDIDO > 0 AND PEDIDOS.ENTRADA <> [ô]0.00[ô]

não sei em qual tabela está o campo entrada




já tinha tentado isso
WHERE [Ô] & IIf(chkEntrada.Value = 1, [Ô]COD_PEDIDO > 0 AND PEDIDOS.ENTRADA <> [ô]0.00[ô][Ô], [Ô]COD_PEDIDO > 0[Ô])


mas dar o mesmo erro
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas