CONSULTA RELACIONAL
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
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
Sim, mas depende de qual banco esta usando, por exemplo, se for access
IIf(SeuCampo=0, Resultado1,Resuldado2)
Que base esta usando?
IIf(SeuCampo=0, Resultado1,Resuldado2)
Que base esta usando?
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
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
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
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
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])"
O iif no access não funciona mas o if...else...endif funciona
O IIF (no sql) do access funciona sim. Tente rever o codigo
Já tentou fazer isso direto no Access?
não seria assim??
iif(isnull([T_MUNICIPIOS].[MUNICIPIO])=true,"",[T_MUNICIPIOS].[MUNICIPIO]))
iif(isnull([T_MUNICIPIOS].[MUNICIPIO])=true,"",[T_MUNICIPIOS].[MUNICIPIO]))
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
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