MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    Função find em qualquer posição

    avatar
    JUAN PABLO
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 09/11/2012

    Função find em qualquer posição Empty Função find em qualquer posição

    Mensagem  JUAN PABLO 25/11/2013, 16:32

    Boa tarde a todos,
    Tenho um campo que estou usando a função findfirst, para localizar o primeiro nome, no campo [nomecliente], porém gostaria de usar a função para encontrar em qualquer parte desse campo, por exemplo, encontrar o nome joão em qualquer parte do campo:
    Pedro João Barbosa;
    João Pedro Martins;
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  criquio 25/11/2013, 17:47

    Poste a rotina completa para vermos como está fazendo que ajuda.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    avatar
    JUAN PABLO
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 09/11/2012

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  JUAN PABLO 26/11/2013, 12:13

    Criquio, bom dia.

    O usuário fará cadastro de ocorrências que funcionam da seguinte forma:
    O usuário registra (no formulário "Cópia de FOcorrencia" - temporário) o funcionário que apresentou a prova da ilegalidade, dentre outros campos a serem preenchidos encontra-se "operador" (CboxOperador) e "cliente" (IdClienteOperador). Fiz um "piloto" usando o evento NotInList e funcionou bem, o problema é no nome da empresa (operador/cliente), pois se o usuário digitar "Paulo Figueredo" e estiver cadastrado Banco João Paulo Figueredo Arantes, não vai aparecer na lista (CboxOperador e/ou IdClienteOperador), então queria montar uma busca no campo completo. Em outro formulário (Fempresas) eu uso o código que busca o primeiro nome (FindFirst), como demonstrado:
    Código:
    On Error Resume Next
        Dim rs As Recordset
        If IsNull([txt_procura]) Then Exit Sub
        Set rs = Me.Recordset.Clone
            rs.FindFirst "[NomeCliente] Like '" & Me.txt_procura & "*'"
            If rs.NoMatch Then
                MsgBox "Não existem Clientes com este Nome (Parte do Nome)!!!"
            Else
                rs.FindNext "[NomeCliente] Like '" & Me.txt_procura & "*'"
                If rs.NoMatch Then
                    rs.FindFirst "[NomeCliente] Like '" & Me.txt_procura & "*'"
                    Me.Bookmark = rs.Bookmark
                Else
                    DoCmd.OpenForm "FEmpresasBusca", , , , , , 1
                    Forms![FEmpresasBusca]![KeepNome] = Me.txt_procura & "*"
                    Forms![FEmpresasBusca]![LstBuscaCliente].Requery
                End If
            End If
    Outro ponto importante é se a empresa não for encontrada será adicionada uma nova empresa e atualizado o campo (já funciona com o recurso "requery").
    Grato pela atenção.
    Anexos
    Função find em qualquer posição AttachmentBdMonopolio.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (421 Kb) Baixado 10 vez(es)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  criquio 26/11/2013, 12:28

    Alguns pontos importantes:

    1 - Não anule mensagens de erros com On Error Resume Next ou outro enquanto o aplicativo não estiver pronto, pois, caso ocorra erro, você nunca saberá o que e aonde porque não tem mensagens de erros para lhe informar;

    2 - Quando usar If com mais de uma condição, o Else deve ser colocado entre essas condições:

    Código:
    If Condição = True Then
        Exit Sub
    Else
        Faça alguma coisa
    End If
    3 - Não tem ponto entre Recordset e Clone;

    4 - Para procurar em qualquer parte do campo, tem que ter asterisco antes e depois do nome do campo da pesquisa:

    LIKE '*" & Me.CampoPesquisa & "*'

    Veja se com isso consegue progredir.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    avatar
    JUAN PABLO
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 09/11/2012

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  JUAN PABLO 28/11/2013, 21:29

    Criquio, boa noite.
    Agradeço as orientações. O formulário FEmpresas está funcionando perfeitamente, assim como o formulário de busca FEmpresasBusca também. A sua ajuda foi fundamental no processo!
    O problema está acontecendo no formulário de ocorrência (FOcorrencia), pois tenho dois campo que uso a propriedade NotInList (CboxOperador e IdClienteOperador), mas gostaria que busca funcionasse conforme o campo Txt_procura presente no formulário FEmpresas que encontra a palavra em qualquer parte do campo. Como hoje uso a propriedade NotInList ele busca somente para o primeiro nome. Tentei transformar o campo CboxOperador (formulário Ocorrência) para caixa texto e usar funcionalidade da busca de empresa, mas sem sucesso. Você acha que tem como executar a busca em qualquer parte do campo e trazer para o formulário. Lembro que existe um relacionamento entre duas tabelas (Empresas e Ocorrencia).
    Antecipo meus agradecimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  criquio 29/11/2013, 11:12

    Não entendi muito bem. Em se tratando de combo, o Not Inlist irá procurar o termo completo do campo o qual a coluna da combo representa. A combo pode ser alterada para ir filtrando a linha e mostrando os registros correspondentes à parte digitada.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    avatar
    JUAN PABLO
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 09/11/2012

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  JUAN PABLO 29/11/2013, 23:43

    Boa noite Criquio,
    Então eu preciso fazer uma busca em qualquer parte do nome da empresa (cliente ou operador), campos CboxOperador e IdCliente. Hoje eu uso o recurso da Combox (Not Inlist) e consigo pesquisar apenas o primeiro nome, uma vez que ocultei o campo da chave primária (coloquei o tamanho do campo como zero, seguido do campo nome de empresa - FOcorrencia, CboxOperador e IdCliente). Minha dúvida é como fazer a busca em qualquer parte do nome da empresa (por exemplo João Paulo e Paulo João) e se encontrar o nome voltar como com o resultado para o formulário/tabela (Ocorrencia), caso não encontre abrir outro formulário chamado FEmpresas.
    É o mesmo procedimento que acontece no formulário FEmpresas (no campo txt_procura), porém o resultado tem que alimentar a tabela Ocorrencia. Não sei se é possível pesquisar em todo o campo (Like *Empresa![IdCliente*, por exemplo ) usando uma Combox? E se não for possível como fazer para receber a chave primária da tabela Empresa.
    Não sei se compliquei mais ainda, caso não entenda vou tentar posso desenhar o processo para você.
    Um forte abraço
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  criquio 30/11/2013, 12:47

    Nesse caso o mais prático seria usar uma listbox que iria sendo filtrada à medida que se digita a pesquisa em um campo. Vamos chamar esse campo de txtPesquisa e a listbox de lstClientes.

    No evento "Ao alterar" do campo txtPesquisa:

    Código:
    Me.lstClientes.RowSource = "SELECT Código, Nome FROM NomeDaTabela WHERE Nome LIKE '*" & Me.txtPesquisa.Text & "*'"
    Código e Nome seriam os dois campos da tabela em duas colunas da listbox.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    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.

    avatar
    JUAN PABLO
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 09/11/2012

    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  JUAN PABLO 2/12/2013, 13:20

    Criquio, bom dia.
    Os campos funcionaram bem, porém quando digito no campo de pesquisa (txtpesquisa) a palavra Bradesco aparece na LstCliente o Banco Bradesco e fica selecionada a empresa para os registros futuros, ainda que eu clique em novo registro (de ocorrencia) e o campo TxtPesquisa fique em branco ao abrir um registro novo aparece apenas o Banco Bradesco. Percebi que no novo registro se eu digitar qualquer letra e apagar a listagem volta a ficar completa?
    Um forte abraço e muito obrigado pela dica.

    Conteúdo patrocinado


    Função find em qualquer posição Empty Re: Função find em qualquer posição

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 03:12