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

    [Resolvido]Recalc vai para o primeio registro =/

    Highlander8
    Highlander8
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/10/2011

    [Resolvido]Recalc vai para o primeio registro =/ Empty Recalc vai para o primeio registro =/

    Mensagem  Highlander8 12/6/2013, 21:09

    Amigos e Mestres Criquio e JPaulo e outros.

    Por favor, me ajudem....

    Em um formulário uso o método me.RECALC, porém quando este é executado, ele não se mantém no registro atual. Ele está indo pro primeiro registro !

    Até onde eu sei o recalc atualiza todos os controles e se mantém no registro atual. Certo?

    Poderiam me ajudar? Preciso fazer com que não vá para o primeiro registro.....

    O mais estranho é que no mesmo sistema, em um outro form executo também este método recalc e ele funciona normalmente.
    O que pode ser isso?! No

    Muito obrigado e aguardo retorno.


    .................................................................................
    Private Sub Help_AfterUpdate()
    If Me.Help = "Pude ajudar" Then
    MsgBox("Foi um prazer!")
    Else
    MsgBox(“Tentarei novamente...")
    End If
    End Sub

    Highlander.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Recalc vai para o primeio registro =/ Empty Re: [Resolvido]Recalc vai para o primeio registro =/

    Mensagem  JPaulo 12/6/2013, 23:12

    Ola,
    O Me.Requery faz isso mesmo, atualiza e vai para o primeiro registro, o Me.Recalc atualiza os controles ativos e realmente não deveria ir para o primeiro registro.

    Em que evento vba está a utilizar ?
    Pode colar aqui toda a instrução ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new Instruções SQL como utilizar...
    Highlander8
    Highlander8
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/10/2011

    [Resolvido]Recalc vai para o primeio registro =/ Empty Recalc vai para o primeio registro =/

    Mensagem  Highlander8 13/6/2013, 13:57

    Mestre JPaulo,

    Primeiramente, muito obrigado pelo retorno.

    Pois é, não sei o que está acontecendo...


    O evento é no : Click (pressiono um botão para concatenar dois campos e assim gerar um código. Este código é composto pelo numero do processo "concatenado_n_ns" + numero da página (que na verdade é o registro atual) "cod". E o campo que recebe este código gerado é o "conc_cod". Conforme abaixo.)

    Para obter o numero da página ( que na verdade é o registro), coloquei um campo invisível "registroNS" que lê a quantidade de registros com o seguinte comando na propriedade  "Origem do Controle" ==> =Contar(*). Daí então uso o Recalc para este campo contar o registro, ser atualizado e realizar a concatenação.


    EXEMPLO:
    O usuário inseri um novo registro no form principal com o numero "1".
    Este form principal tem um sub-form onde vc pode inserir novos registros/páginas referente ao processo principal "1". E é nele que eu inseri um campo invisível para contar registros.
    Ao inserir dados em um novo registro neste sub-form, o usuário clica no botão "Comando44" para poder gerar o concatenado, mas antes de concatenar, é executado o RECALC, para o campo de registros ser atualizado para "1" e gerar o código: "1.1".

    Se inserisse mais um registro no sub-form neste mesmo processo "1", no final eu teria o código: "1.2", e assim por diante...
    Entendeu Mestre?

    Bom, Segue instrução:

    **************

    Private Sub Comando44_Click()

    If IsNull(Me!conc_cod) Or (Me!conc_cod = "") Then '==> testa se o campo já está preenchido

     Me.Recalc 'atualiza
     
     Me!cod = Me!registroNS 'cod recebe o numero "página" do registro atual adicionado
     conc_cod = [concatenado_n_ns] & "." & [cod] ' con_cod recebe a concatenação: Processo principal + Página
     MsgBox "Criado com sucesso!", vbOKOnly, "Correlacionado"
     
     Else
     MsgBox " Atenção: Você já gerou o 'Correlacionado'!", vbExclamation + vbOKOnly, "ERROR"
    End If

    End Sub

    *************

    Mestre, é isso.....
    Penso eu que não tem o que está causando ele ir pro primeiro registro.
    E como ele está indo pro primeiro, o campo do mesmo que acaba recebendo o valor concatenado.

    Mestre, desde já agradeço e aguardo retorno.

    Um grande abraço.


    .................................................................................
    Private Sub Help_AfterUpdate()
    If Me.Help = "Pude ajudar" Then
    MsgBox("Foi um prazer!")
    Else
    MsgBox(“Tentarei novamente...")
    End If
    End Sub

    Highlander.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Recalc vai para o primeio registro =/ Empty Re: [Resolvido]Recalc vai para o primeio registro =/

    Mensagem  JPaulo 13/6/2013, 14:01

    Meu amigo, dá para você anexar aqui parte do seu banco com esse forms ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new Instruções SQL como utilizar...
    Highlander8
    Highlander8
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/10/2011

    [Resolvido]Recalc vai para o primeio registro =/ Empty Recalc vai para o primeio registro =/

    Mensagem  Highlander8 13/6/2013, 15:10

    Mestre JPaulo,

    O BD é muito grande, mas fiz o print da tela do sub-formulario em questao para melhor vislumbrar.
    Tentei fazer o print do BD, mas parece que o windows nao permite.

    Bom, veja se consegue pelo amor de Deus, me ajudar com o que coloquei em anexo, este sistema roda a nivel Nacional e este Recalc indo pro primeiro registro esta me causando problemas.......

    Se precisar de mais algum dado eu lhe passo.

    Muito obrigado mesmo de coração.


    .................................................................................
    Private Sub Help_AfterUpdate()
    If Me.Help = "Pude ajudar" Then
    MsgBox("Foi um prazer!")
    Else
    MsgBox(“Tentarei novamente...")
    End If
    End Sub

    Highlander.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]Recalc vai para o primeio registro =/ Empty Re: [Resolvido]Recalc vai para o primeio registro =/

    Mensagem  JPaulo 13/6/2013, 15:56

    Não dá para dislumbrar bem, mas vamos lá tentar assim;

    Em vez de enviar o Recalc ao form, vai invocar o nome do campo e em vez de Recalc use o Requery;


    Private Sub Comando44_Click()                                                              
                                                                                               
    If IsNull(Me!conc_cod.Value) Or (Me!conc_cod.Value = "") Then                              
                                                                                               
        Me.Cod.Requery                                                                         
        Me!Cod.Value = Me!registroNS.Value                                                     
        Me!conc_cod.Value = Me!concatenado_n_ns.Value & "." & Me.Cod.Value                     
                                                                                               
        MsgBox "Criado com sucesso!", vbOKOnly, "Correlacionado"                               
                                                                                               
        Else                                                                                   
        MsgBox " Atenção: Você já gerou o 'Correlacionado'!", vbExclamation + vbOKOnly, "ERROR"
    End If                                                                                     
                                                                                               
    End Sub   


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Recalc vai para o primeio registro =/ Folder_announce_new Instruções SQL como utilizar...
    Highlander8
    Highlander8
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/10/2011

    [Resolvido]Recalc vai para o primeio registro =/ Empty Recalc vai para o primeio registro =/

    Mensagem  Highlander8 13/6/2013, 21:58

    Mestre JPaulo,

    Obrigado pelo retorno.

    Executei conforme solicitou e funcionou, ou seja, o concatenado é gerado e não vai para o primeiro registro, mas agora tem uma outra questão...

    Com o recalc, se não existisse ainda registro, o sistema geraria: 1.1 ==> (Processo Principal + Registro inserido [página])
                       se já tivesse um registro inserido, geraria: 1.2 ==> (Processo Principal + Registro inserido [página])
                       se já tivessem dois registros inseridos, geraria: 1.3
                       e assim por diante... Pois com o Recalc, o campo que conta os registros é ATUALIZADO.

    Já com o requery, ele nao está atualizando o campo que conta numero do registro inserido.
                       se não existisse ainda registro, o sistema daria erro, pois o campo que conta os registros inseridos nao foi atualizado para "1" e  ainda estaria vazio.
                       se já tivesse um registro "1.1" inserido, seria gerado novamente: 1.1 ==> pois o sistema nao atualizou o campo invisivel que conta os registros.
                       se já tivessem dois registros inseridos, geraria: 1.1 novamente.

    ou seja, se forem adicionados registros em sequencia, usando o requery, o campo que conta os registros não é atualizado, sendo assim ele gera sempre "1.1" ou daria erro, caso ainda nao tenha registro inserido.

    mas se eu adicionar um registro, fechar o sistema e abrir o sistema, aí sim o campo que conta o registro é atualizado.

    Em resumo, com o requery funcionou, porém o campo que contabiliza o numero de registros nao é atualizado.

    Pelo que estou percebendo, teria que acrescer sempre 1 ao campo que contabiliza para funcionar ou teria uma outra forma?

    Mais uma vez obrigado Mestre e aguardo retorno.


    .................................................................................
    Private Sub Help_AfterUpdate()
    If Me.Help = "Pude ajudar" Then
    MsgBox("Foi um prazer!")
    Else
    MsgBox(“Tentarei novamente...")
    End If
    End Sub

    Highlander.
    Highlander8
    Highlander8
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/10/2011

    [Resolvido]Recalc vai para o primeio registro =/ Empty Recalc vai para o primeio registro =/

    Mensagem  Highlander8 15/7/2013, 18:39

    É pessoal,

    Ainda nada resolvido.
    Sei lá porque isso acontece........

    Enfim.

    Darei por encerrado.

    Obrigado.


    .................................................................................
    Private Sub Help_AfterUpdate()
    If Me.Help = "Pude ajudar" Then
    MsgBox("Foi um prazer!")
    Else
    MsgBox(“Tentarei novamente...")
    End If
    End Sub

    Highlander.
    Highlander8
    Highlander8
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 70
    Registrado : 25/10/2011

    [Resolvido]Recalc vai para o primeio registro =/ Empty Recalc vai para o primeio registro =/

    Mensagem  Highlander8 15/7/2013, 18:41

    Sad 


    .................................................................................
    Private Sub Help_AfterUpdate()
    If Me.Help = "Pude ajudar" Then
    MsgBox("Foi um prazer!")
    Else
    MsgBox(“Tentarei novamente...")
    End If
    End Sub

    Highlander.

    Conteúdo patrocinado


    [Resolvido]Recalc vai para o primeio registro =/ Empty Re: [Resolvido]Recalc vai para o primeio registro =/

    Mensagem  Conteúdo patrocinado


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