MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Comando LIKE com ADO

    Compartilhe

    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Comando LIKE com ADO

    Mensagem  Motar em Sex 29 Nov 2013, 14:35

    Viva
    Quando aplico o filtro em recordset ADO desta forma funciona:
    NomeCliente Like 'Di%'
    (Obter os registos que começam com Di)

    Desta não funciona:
    NomeCliente Like '%na'
    (Obter os registos que terminam em na)

    Porque será?

    avatar
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11234
    Registrado : 30/12/2009

    Re: Comando LIKE com ADO

    Mensagem  criquio em Sex 29 Nov 2013, 14:41

    Já tentou trocar o sinal de porcentagem por asterisco?


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Sex 29 Nov 2013, 15:28

    Com asterisco não funciona de nenhuma das formas
    avatar
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11234
    Registrado : 30/12/2009

    Re: Comando LIKE com ADO

    Mensagem  criquio em Sex 29 Nov 2013, 15:31

    Está usando isso via VBA no Access? Poste a rotina completa se possível.


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Sex 29 Nov 2013, 17:28

    Viva
    Sim é via VBA no Access.

    A rotina é a seguinte
    rsfc.Filter = "NomeCliente Like '%na'"
    avatar
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11234
    Registrado : 30/12/2009

    Re: Comando LIKE com ADO

    Mensagem  criquio em Sab 30 Nov 2013, 12:49

    Quando falamos rotina completa, nos referimos a todo o código constante do evento. Todas as linhas.


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Sab 30 Nov 2013, 20:53

    Viva, aí vai

    Call ConServer
    Dim rsfc As New ADODB.Recordset
    Set rsfc = New ADODB.Recordset
    Dim sql As String
    sql = "SELECT * FROM TblDados"
    rsfc.Open sql, CON, adOpenKeyset, adLockReadOnly, adCmdText
    rsfc.Filter = "NomeCliente Like '%na'"
    Set SelForm.Recordset = rsfc

    Pretendo aplicar e remover filtros no recordset sem fazer ligação ao servidor, daí não aplicar o filtro na instrução sql
    avatar
    criquio
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11234
    Registrado : 30/12/2009

    Re: Comando LIKE com ADO

    Mensagem  criquio em Sab 30 Nov 2013, 21:25

    Tente filtrar direto no sql:

    Código:
    sql = "SELECT * FROM TblDados WHERE NomeCliente Like '*na'"


    .................................................................................
    Meu novo site: [Você precisa estar registrado e conectado para ver este link.]

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Sab 30 Nov 2013, 22:14

    Viva
    Mas eu pretendo filtrar o recordset, que podem ser aplicados e removidos filtros sem ligar ao servidor aumentando a performance da aplicação
    avatar
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1154
    Registrado : 21/01/2012

    Re: Comando LIKE com ADO

    Mensagem  Cláudio Más em Dom 01 Dez 2013, 02:51

    Olá,

    Creio que o curinga deve ser obrigatoriamente o último caracter na string da propriedade Filter.

    Tente algo assim:

    rsfc.Filter = "Right(NomeCliente, 2) = 'na'"
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3391
    Registrado : 04/04/2010

    Re: Comando LIKE com ADO

    Mensagem  Avelino Sampaio em Dom 01 Dez 2013, 09:42

    Claudio, muito louco isso!  Realmente não funciona com o curinga na frente.

    Rui, o que o Claudio te passou deve funcionar bem.  Existe uma nova propriedade do comando DOCMD que se chama SearchForRecord.  Experimente esta propriedade para filtragem

    Nota:  Vc aplica esta propriedade depois que o formulário estiver carregado com todos os registro.  Esta filtragem não exige ligação ao servidor.

    Exemplo:

    DoCmd.SearchForRecord acDataForm, "NomeDoFormulário", acFirst, "NomeCliente like '*" & Me!CampoFiltro & "'"
    Me!NomeCliente.SetFocus
    Me!NomeCliente.SelStart = Len(Me!NomeCliente & "")


    Creio que neste comando vc possa utilizar o curinga da SQL JET ("*").  Não tenho aqui o SQLServer para testar.

    Aguardamos

    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Seg 02 Dez 2013, 16:12

    Viva Cláudio
    Estive a tentar o seu método de várias formas mas dá erro, você já comprovou este método?

    Viva Avelino
    Experimentei seu método e não dá erro, só que não me filtra os dados, será necessário mais algum código?

    Um Abraço
    Rui
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3391
    Registrado : 04/04/2010

    Re: Comando LIKE com ADO

    Mensagem  Avelino Sampaio em Seg 02 Dez 2013, 16:14

    Qual é versão do seu Access ?

    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Seg 02 Dez 2013, 16:16

    Num PC do trabalho utilizo 2010 em casa o 2007, mas está dando erro nos dois
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3391
    Registrado : 04/04/2010

    Re: Comando LIKE com ADO

    Mensagem  Avelino Sampaio em Seg 02 Dez 2013, 17:05

    Desculpa, não tenho aqui o SQL para testar e poder te ajuda melhor.

    Motar
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 149
    Registrado : 03/08/2010

    Re: Comando LIKE com ADO

    Mensagem  Motar em Seg 02 Dez 2013, 22:26

    Viva
    O exemplo completo está neste link:
    [Você precisa estar registrado e conectado para ver este link.]

    Se poderem ajudar a resolver esta questão eu agradeço

      Data/hora atual: Ter 26 Set 2017, 06:41