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


3 participantes

    [Resolvido]docmd.searchforrecord não funciona com botão comando

    avatar
    Jolo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 40
    Registrado : 08/03/2012

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty docmd.searchforrecord não funciona com botão comando

    Mensagem  Jolo 10/2/2013, 00:13

    Ola a todos,

    depois de imensas horas a tentar resolver o problema, venho soliictar a vossa ajuda.
    Tenho um botão de comando que tem no evento click
    DoCmd.SearchForRecord acDataForm, "frm1", acFirst, "Solucao = ""nome1"""

    O problema é que o comando funciona alternadamente, ou seja uma vez vai para o registo correto e a vez seguinte permanece no primeiro registo, incorretamente.

    Alguem sabe como ultrapassar esta situação?


    Obrigado
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Alexandre Neves 10/2/2013, 09:59

    Bom dia, Jolo
    Se a tabela estiver ordenada pelo campo Solucao, ele funcionará correctamente


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Jolo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 40
    Registrado : 08/03/2012

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Jolo 10/2/2013, 13:01

    Caro Alexandre,
    o problema não está na ordenação do campo.
    O que acontece é que quando eu clico a segunda vez no botão comando ( localizado no cabeçalho do formulario) o registo corrente passa a ser o primeiro, independentemente do seu conteudo. Depois clico a 3 vez no botao comando e funciona. Se clico a 4 vez, volta para o primeiro registo e assim sucesivamente. Dá ideia que se tenha de fazer um reset qualquer depois de se fazer o docmd.searchforrecord.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Alexandre Neves 10/2/2013, 13:08

    Esse comando apenas mantém no campo actual quando não existe nenhum registo que satisfaça o critério
    Tente
    DoCmd.SearchForRecord acDataForm, "frm1", acFirst, "Solucao ='nome1'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Jolo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 40
    Registrado : 08/03/2012

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Jolo 10/2/2013, 17:36

    O problema manté-se.
    Definitivamente o que verifico é que quando clico a 2,4,6,8....vez no botao de comando, que tem o metodo docmd.searchforrecord, o registo ativo passa a ser sempre o primeiro independentemente do que se procura.
    Em anexo coloquei um ficheiro muito simples que se verifica o meu problema.
    Anexos
    [Resolvido]docmd.searchforrecord não funciona com botão comando Attachmentteste1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (22 Kb) Baixado 8 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Alexandre Neves 10/2/2013, 18:54

    Jolo,
    Acontece também que este comando não funciona normal quando chega ao fim dos registos.
    Assim, coloque
    DoCmd.GoToRecord acDataForm, "frm1", acFirst
    DoCmd.SearchForRecord acDataForm, "frm1", acFirst, "Nome='joao'"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Jolo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 40
    Registrado : 08/03/2012

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Jolo 10/2/2013, 19:20

    Caro Alexandre,
    na minha opinião e depois da tua ajuda, vejo que o dcm.searchforrecord funciona apenas uma vez mesmo sem chegar ao fim dos registos.
    Em todo o caso a tua solução resolveu o meu problema.


    Muito obrigado,
    João
    avatar
    Lauro Ribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 15/02/2023

    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Uso do Recordset de dados do SubFormulário.

    Mensagem  Lauro Ribeiro 12/3/2023, 22:57

    Para localizar um registro num subformulário, você poderá usar também um recordset de formulário. No caso abaixo foi criada uma text box "text4" que será o valor a ser procurado num campo de um subformulário.

    Esta ação abaixo pode ser colocada num click de mouse num botão, por exemplo.

      Dim rstSuppliers As Recordset
      Dim vLgNumID As Long
     
      DoCmd.Echo False 'Para congelar a tela do access
       
       Set rstSuppliers = [SeuSubFormulário].Recordset
           rstSuppliers.MoveFirst 'mover para o primeiro registro do subformulário
           vLgNumID = Me.Text4.Value
           Do Until rstSuppliers.EOF
               On Error Resume Next
               'O loop percorrerá todos os registros do subformulário até encontrar o valor
               'vLgNumID no campo NomeDoCampo.
               If rstSuppliers.Fields("NomeDoCampo") = vLgNumID Then Exit Do
               rstSuppliers.MoveNext
           Loop
       DoCmd.Echo True 'descongela a tela do access

      Se você tiver vários registros de mesmo valor, ele encontrará o primeiro. Para tal, é interessante deixar em ordem crescente os registros no NomeDoCampo.

    Lauro Ribeiro gosta desta mensagem


    Conteúdo patrocinado


    [Resolvido]docmd.searchforrecord não funciona com botão comando Empty Re: [Resolvido]docmd.searchforrecord não funciona com botão comando

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/5/2024, 12:14