FUNCAO REPLACE E SQL
Criei no Access uma consulta para testar e ela usa a função Replace do Access.
Como funcionou perfeitamente, copiei o código SQL para o programa em VB6.
E agora quando rodo o programa, aparece uma mensagem dizendo [Ô]Função Replace indefinida na expressão[Ô].
Alguém sabe o porque disso?
Obrigado.
Replace (expressão,X,Y)
onde expressão = A frase ou palavra que você quer que seja processada pelo REPLACE.
onde X = Ao que esta procurando
onde Y = Pelo que será substituÃdo.
Caso você tenha mais de um REPLACE a aplicar na mesma expressão pode usar:
replace(replace(expressão,X,Y),X,Y)
Repare que a expressão é passada apenas uma única vez.
Citação::
No VB 6 é:
Replace (expressão,X,Y)
onde expressão = A frase ou palavra que você quer que seja processada pelo REPLACE.
onde X = Ao que esta procurando
onde Y = Pelo que será substituÃdo.
Caso você tenha mais de um REPLACE a aplicar na mesma expressão pode usar:
replace(replace(expressão,X,Y),X,Y)
Repare que a expressão é passada apenas uma única vez.
Você não leu minha questão corretamente.
Vou repetir: criei uma consulta SQL dentro do Access a qual usa a função Replace. Funciona perfeitamente.
Quando eu copio o texto dessa consulta para uma string dentro do programa em VB6 e executo o programa, obtenho aquela mensagem [Ô]Função Replace indefinida na expressão[Ô].
Exemplo (substitui a letra [Ô]A[Ô] pelo caracter [Ô]_[Ô] nos nomes dos clientes):
SELECT Replace(Nome, [ô]A[ô], [ô]_[ô])
FROM tabClientes
Copiando esse texto para o VB6 e tentando executar, aparece a mensagem de erro.
Citação::
Qual é a versão do Access que você está usando?
Access 2003
Citação::
:
No VB 6 é:
Replace (expressão,X,Y)
onde expressão = A frase ou palavra que você quer que seja processada pelo REPLACE.
onde X = Ao que esta procurando
onde Y = Pelo que será substituÃdo.
Caso você tenha mais de um REPLACE a aplicar na mesma expressão pode usar:
replace(replace(expressão,X,Y),X,Y)
Repare que a expressão é passada apenas uma única vez.
Você não leu minha questão corretamente.
Vou repetir: criei uma consulta SQL dentro do Access a qual usa a função Replace. Funciona perfeitamente.
Quando eu copio o texto dessa consulta para uma string dentro do programa em VB6 e executo o programa, obtenho aquela mensagem [Ô]Função Replace indefinida na expressão[Ô].
Exemplo (substitui a letra [Ô]A[Ô] pelo caracter [Ô]_[Ô] nos nomes dos clientes):
SELECT Replace(Nome, [ô]A[ô], [ô]_[ô])
FROM tabClientes
Copiando esse texto para o VB6 e tentando executar, aparece a mensagem de erro.
[Ô]Você não leu minha RESPOSTA corretamente.[Ô]
Se você ver eu escrevi: [Ô]NO VB 6 é (...)[Ô]
Para você fazer o replace que você quer, você precisa do resultado do select.
rs.open [Ô]Select Nome From Tabela where Nome = [ô]Amanda Oliveira[ô][Ô]
replace (rs!Nome,[Ô]A[Ô],[Ô]_[Ô])
Outro detalhe, não sei como você esta fazendo no Access, mas no VB se usa Aspas-Dupla e não Aspa-Simples como você exemplificou.
Para finalizar, você esta dando um replace no NOME da Coluna e não no resultado.
Abraços.
Citação:Se você ver eu escrevi: [Ô]NO VB 6 é (...)[Ô]
Sim, mas eu não queria saber como funcionam as funções Replace, seja no Access, seja no VB6, pois eu já as conheço.
O problema é saber como passar uma string SQL contendo Replace usando o VB6 para que o Access possa executar.
Citação:Para você fazer o replace que você quer, você precisa do resultado do select.
rs.open [Ô]Select Nome From Tabela where Nome = [ô]Amanda Oliveira[ô][Ô]
replace (rs!Nome,[Ô]A[Ô],[Ô]_[Ô])
Mas eu queria que o Access fizesse isso, não o VB6.
Citação:Outro detalhe, não sei como você esta fazendo no Access, mas no VB se usa Aspas-Dupla e não Aspa-Simples como você exemplificou.
Você não leu minha mesagem corretamente outra vez. Logo após o exemplo que eu citei, eu escrevi [Ô]Copiando esse texto para o VB6...[Ô], subentende-se que ele esteja no Access, onde aspas simples são permitidas. Mesmo assim, substituindo aspas simples por duplas na string do VB6 o problema permanece.
Citação:Para finalizar, você esta dando um replace no NOME da Coluna e não no resultado.
Não entendi o que você quis dizer. Se executar no Access aquele simples exemplo que eu citei, verá a letra [Ô]A[Ô] de todos os nomes substituÃdas por [Ô]_[Ô] numa coluna intitulada Expr1000.
Se quiser que a coluna tenha um nome significativo, poderá usar:
SELECT Replace(Nome, [ô]A[ô], [ô]_[ô]) AS Nomes
FROM tabClientes
Mas o problema continua. Se usar essa string no VB6, obterá aquela mensagem de erro.