CONSULTA RELACIONAL

ADRIANO 29/11/2006 10:56:35
#186917
Estou usando a seguinte consulta com relacionamento entre as tabelas:

SQL = "Select distinctrow Format([T_CLIENTES].[CODIGO], " & Chr(34) & String(COD_DIGI, "0") & Chr(34) & ") as CODIGO, [T_CLIENTES].[NOME], [T_CLIENTES].[CONTATO], [T_CLIENTES].[CPF], [T_CLIENTES].[RG], [T_CLIENTES].[ENDERECO], [T_CLIENTES].[BAIRRO], [T_MUNICIPIOS].[MUNICIPIO] " & Chr(38) & " " & Chr(34) & "-" & Chr(34) & " " & Chr(38) & " [T_MUNICIPIOS].[UF] as MUNICIPIO, [T_CLIENTES].[CEP], [T_CLIENTES].[TELEFONE], [T_CLIENTES].[FAX], [T_CLIENTES].[CELULAR], [T_CLIENTES].[EMAIL], [T_CLIENTES].[OBSERVACAO], Format([T_CLIENTES].[LIMITE], " & Chr(34) & "#,##0.00" & Chr(34) & ") as LIMITE, [T_CONVENIOS].[CONVENIO], Format([T_CLIENTES].[NASCIDO], " & Chr(34) & "DD/MM/YYYY" & Chr(34) & ") as NASCIDO, [T_CLIENTES].[PROFISSAO], [T_CLIENTES].[PAI], [T_CLIENTES].[MAE], [T_CLIENTES].[CONJUGE], [T_CLIENTES].[NATURAL], Format([T_CLIENTES].[CADASTRO], " & Chr(34) & "DD/MM/YYYY" & Chr(34) & ") as CADASTRO, Format([T_CLIENTES].[ULTIMA], " & Chr(34) & "DD/MM/YYYY" & Chr(34) & ") as ULTIMA, [T_CLIENTES].[ATIVO] from T_MUNICIPIOS inner join (T_CONVENIOS inner join T_CLIENTES on [T_CONVENIOS].[CODIGO] = Val([T_CLIENTES].[CONVENIO])) on [T_MUNICIPIOS].[CODIGO] = Val([T_CLIENTES].[MUNICIPIO])"

o problema é o seguinte:

- Quando trago os seguintes campos:
[T_MUNICIPIOS].[MUNICIPIO] " & Chr(38) & " " & Chr(34) & "-" & Chr(34) & " " & Chr(38) & " [T_MUNICIPIOS].[UF] as MUNICIPIO

Se o campo [T_CLIENTES].[MUNICIPIO] = 0 ou seja se estiver em branco vai traser somente o traço("-"). Tem como fazer um teste dentro da própria consulta para que se o campo [T_MUNICIPIOS].[MUNICIPIO] = "", MUNICIPIO retorne "" e se estiver preenchido retorne certinho("Carazinho-RS").

Desde já agradeço.

Adriano Daniel Mà¼ller
ALMARTI 29/11/2006 10:59:46
#186919
Resposta escolhida
Sim, mas depende de qual banco esta usando, por exemplo, se for access

IIf(SeuCampo=0, Resultado1,Resuldado2)

Que base esta usando?
ADRIANO 29/11/2006 11:15:27
#186923
Já tentei o Iff, mas da erro. O access não reconhece o iff, ou eu usei errado.

Tenta por no meu código, pra ver como fiaria, mas eu acho que no access não vai funfa.


Desde já agradeço.

Adriano Daniel Mà¼ller
ADRIANO 29/11/2006 11:20:53
#186925
Já tentei o iif, mas da erro. O access não reconhece o iif, ou eu usei errado.

Tenta por no meu código, pra ver como fiaria, mas eu acho que no access não vai funfa.


Desde já agradeço.

Adriano Daniel Mà¼ller
USUARIO.EXCLUIDOS 29/11/2006 11:22:40
#186927
SQL = "Select distinctrow Format([T_CLIENTES].[CODIGO], " & Chr(34) & String(COD_DIGI, "0") & Chr(34) & ") as CODIGO, [T_CLIENTES].[NOME], [T_CLIENTES].[CONTATO], [T_CLIENTES].[CPF], [T_CLIENTES].[RG], [T_CLIENTES].[ENDERECO], [T_CLIENTES].[BAIRRO], iif([T_MUNICIPIOS].[MUNICIPIO] " & Chr(38) & " " & Chr(34) & "-" & Chr(34) & " " & Chr(38) & " [T_MUNICIPIOS].[UF] = '-','',[T_MUNICIPIOS].[MUNICIPIO] " & Chr(38) & " " & Chr(34) & "-" & Chr(34) & " " & Chr(38) & " [T_MUNICIPIOS].[UF]) as MUNICIPIO, [T_CLIENTES].[CEP], [T_CLIENTES].[TELEFONE], [T_CLIENTES].[FAX], [T_CLIENTES].[CELULAR], [T_CLIENTES].[EMAIL], [T_CLIENTES].[OBSERVACAO], Format([T_CLIENTES].[LIMITE], " & Chr(34) & "#,##0.00" & Chr(34) & ") as LIMITE, [T_CONVENIOS].[CONVENIO], Format([T_CLIENTES].[NASCIDO], " & Chr(34) & "DD/MM/YYYY" & Chr(34) & ") as NASCIDO, [T_CLIENTES].[PROFISSAO], [T_CLIENTES].[PAI], [T_CLIENTES].[MAE], [T_CLIENTES].[CONJUGE], [T_CLIENTES].[NATURAL], Format([T_CLIENTES].[CADASTRO], " & Chr(34) & "DD/MM/YYYY" & Chr(34) & ") as CADASTRO, Format([T_CLIENTES].[ULTIMA], " & Chr(34) & "DD/MM/YYYY" & Chr(34) & ") as ULTIMA, [T_CLIENTES].[ATIVO] from T_MUNICIPIOS inner join (T_CONVENIOS inner join T_CLIENTES on [T_CONVENIOS].[CODIGO] = Val([T_CLIENTES].[CONVENIO])) on [T_MUNICIPIOS].[CODIGO] = Val([T_CLIENTES].[MUNICIPIO])"
USUARIO.EXCLUIDOS 29/11/2006 11:55:41
#186933
O iif no access não funciona mas o if...else...endif funciona
ALMARTI 29/11/2006 12:13:10
#186935
O IIF (no sql) do access funciona sim. Tente rever o codigo
USUARIO.EXCLUIDOS 29/11/2006 14:13:03
#186971
Já tentou fazer isso direto no Access?
USUARIO.EXCLUIDOS 29/11/2006 14:20:24
#186974
não seria assim??

iif(isnull([T_MUNICIPIOS].[MUNICIPIO])=true,"",[T_MUNICIPIOS].[MUNICIPIO]))
ADRIANO 30/11/2006 11:23:30
#187141
Aí pessoal!

O Iif funcionou... Não tinha funcionado antes pq a sintaxe tava errada. eu tava usando iff ao invés de iif....

ficou assim:

SQL = "Select distinctrow Format([T_CLIENTES].[CODIGO], " & Chr(34) & String(COD_DIGI, "0") & Chr(34) & ") as CODIGO, [T_CLIENTES].[NOME], [T_CLIENTES].[CONTATO], [T_CLIENTES].[CPF], [T_CLIENTES].[RG], [T_CLIENTES].[ENDERECO], [T_CLIENTES].[BAIRRO], Iif([T_CLIENTES].[MUNICIPIO] = 0, " & Chr(34) & Chr(34) & ", [T_MUNICIPIOS].[MUNICIPIO] " & Chr(38) & " " & Chr(34) & "-" & Chr(34) & " " & Chr(38) & " [T_MUNICIPIOS].[UF]) as MUNICIPIO, [T_CLIENTES].[CEP], [T_CLIENTES].[TELEFONE], [T_CLIENTES].[FAX], [T_CLIENTES].[CELULAR], [T_CLIENTES].[EMAIL], [T_CLIENTES].[OBSERVACAO], Format([T_CLIENTES].[LIMITE], " & Chr(34) & CONFIG.FORMATO_MOEDA & Chr(34) & ") as LIMITE, [T_CONVENIOS].[CONVENIO], Format([T_CLIENTES].[NASCIDO], " & Chr(34) & CONFIG.FORMATO_DATA & Chr(34) & ") as NASCIDO, [T_CLIENTES].[PROFISSAO], [T_CLIENTES].[PAI], [T_CLIENTES].[MAE], [T_CLIENTES].[CONJUGE], [T_CLIENTES].[NATURAL], Format([T_CLIENTES].[CADASTRO], " & Chr(34) & CONFIG.FORMATO_DATA & Chr(34) & ") as CADASTRO, Format([T_CLIENTES].[ULTIMA], " & Chr(34) & CONFIG.FORMATO_DATA & Chr(34) & ") as ULTIMA, [T_CLIENTES].[ATIVO] from T_MUNICIPIOS inner join (T_CONVENIOS inner join T_CLIENTES on [T_CONVENIOS].[CODIGO] = Val([T_CLIENTES].[CONVENIO])) on [T_MUNICIPIOS].[CODIGO] = Val([T_CLIENTES].[MUNICIPIO])"

Obrigado a todos....

Mas quem levou essa foi o Almarti....

Abração.

Adriano Daniel Mà¼ller
Tópico encerrado , respostas não são mais permitidas