FUNCAO LIKE

USUARIO.EXCLUIDOS 11/04/2007 15:29:41
#211278
Preciso de ajuda para corrigir este SELECT:

SELECT APCattool.APID, APControl_Ordem.ordem, APControl_Ordem.mof, APCattool.cliente, APControl_Proj.data_cadastro FROM APControl_Proj INNER JOIN (APCattool INNER JOIN APControl_Ordem ON APCattool.APID = APControl_Ordem.APID) ON (APControl_Proj.APID = APCattool.APID) AND (APControl_Proj.APID = APControl_Ordem.APID)
WHERE (((APCattool.cliente) Like "%Embratel%") AND ((APControl_Proj.data_cadastro)>=DateAdd(""m"",-2,Date())) AND ((APControl_Ordem.ordem)<>0)) GROUP BY APCattool.APID, APControl_Ordem.ordem, APControl_Ordem.mof, APCattool.cliente, APControl_Proj.data_cadastro;


O problema é que tenho uma função LIKE usando % ao inves de *, e mesmo invertendo o Bando de Dados Acess não retorna um valor.
Estou usando a funçao errada ou tem outra regra pra esse caso?

Obrigada.


GREGO 11/04/2007 15:33:48
#211280
o like provavelmente esta certo, vc ja tenho fazer a mesma pesquisa em este filto para ver se retorna resultados?
USUARIO.EXCLUIDOS 11/04/2007 15:35:29
#211283
Eu fiz a consulta no Acess e ele me retorna uma valor normalmente, mas quando passo para o codigo, ele dá fim de arquivo.
WEBER 11/04/2007 15:41:02
#211285
mas se tu queres buscar todos os registros q esteja apenas COMO EMBRATEL Pq ta usando o like pq nao usa um filtro direto para o campo ou seja filtrar o campo diretamente pela palavra WHERE campo=embratel nao usando o like

agora se a questao é like mesmo pq vc nao muda qndo passar o codigo do pro vb por exemplo, ao inves de usar "%EMBRATEL%" TROQUE AS " POR SIMPLES '
GREGO 11/04/2007 15:41:31
#211286
SELECT APCattool.APID, APControl_Ordem.ordem, APControl_Ordem.mof, APCattool.cliente, APControl_Proj.data_cadastro FROM APControl_Proj INNER JOIN APCattool INNER ON (APControl_Proj.APID = APCattool.APID) inner JOIN APControl_Ordem ON (APCattool.APID = APControl_Ordem.APID) inner join APControl_Ordem on (APControl_Proj.APID = APControl_Ordem.APID)
WHERE (((APCattool.cliente) Like "%Embratel%") AND ((APControl_Proj.data_cadastro)>=DateAdd(""m"",-2,Date())) AND ((APControl_Ordem.ordem)<>0)) GROUP BY APCattool.APID, APControl_Ordem.ordem, APControl_Ordem.mof, APCattool.cliente, APControl_Proj.data_cadastro;

GREGO 11/04/2007 15:43:04
#211289
é e tem o detarlhe das aspas simples que esqueci
USUARIO.EXCLUIDOS 11/04/2007 15:46:01
#211292
Eu preciso usar o LIKE pq o nome não é somente Embratel.

No caso das aspas, isso eu já testei e não influencia, eu acredito que seja pq o Acess reconhece apenas * ao invés de % depois do LIKE.

Mas dei um break no codigo e fiz uma consulta nesse SELECT e ele funfou normal.

Não entendo.
USUARIO.EXCLUIDOS 11/04/2007 16:32:46
#211312
COntinuo nao conseguindo. Já mudei de * para % e nada!

Alguem pode me ajudar?
HUGOSSOUZA 11/04/2007 16:39:43
#211316
usando "DAO" tem que ser "*"
usando "ADO" tem que ser "%"

tenta substituir o nome por uma variavel

dim cliente as string

cliente = "Embratel"

SELECT APCattool.APID, APControl_Ordem.ordem, APControl_Ordem.mof, APCattool.cliente, APControl_Proj.data_cadastro FROM APControl_Proj INNER JOIN (APCattool INNER JOIN APControl_Ordem ON APCattool.APID = APControl_Ordem.APID) ON (APControl_Proj.APID = APCattool.APID) AND (APControl_Proj.APID = APControl_Ordem.APID)
WHERE (((APCattool.cliente) Like '%"& cliente &"%') AND ((APControl_Proj.data_cadastro)>=DateAdd(""m"",-2,Date())) AND ((APControl_Ordem.ordem)<>0)) GROUP BY APCattool.APID, APControl_Ordem.ordem, APControl_Ordem.mof, APCattool.cliente, APControl_Proj.data_cadastro
USUARIO.EXCLUIDOS 11/04/2007 16:56:27
#211332
O problema é que estou trabalhando com uma QUERY no Banco de Dados, e não em codigo, não tem como armazenar em uma variavel.

Agradeço sua ajuda mais continuo sem solução.
Tópico encerrado , respostas não são mais permitidas