MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Erro de memória de Pilha!

    Compartilhe

    leonardoemel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 04/01/2013

    Erro de memória de Pilha!

    Mensagem  leonardoemel em Seg 24 Fev 2014, 19:07

    Boa tarde,

    Meu BD está apresentando um erro de memória de pilha ao executar. Eu disponibilizei um modelo que contém um exemplo do que eu preciso e apresenta o mesmo erro. Claro que o arquivo é um exemplo, o arquivo que tenho é bem mais complexo e bem maior que esse, então não tenho como disponibiliza-lo.

    Notem que eu fiz um Formulário3 sem a instrução "Docmd.gotorecord,, acNext", que não dá erro, porém tenho que passar manualmente cada registro para atualização dos dados conforme condições e fiz o Formulário4 com a instrução antes citada que é o que dá o erro de memória.

    O que pode ser isso? e como posso resolver?

    Tem algum código que "Esvazie" a memória após a instrução ser executada a cada registro... Bom , num sei se to falando alguma bobagem, mas pensei que seria a solução...

    Obrigado,
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (241 Kb) Baixado 4 vez(es)

    halmeida
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 90
    Registrado : 07/08/2011

    Re: Erro de memória de Pilha!

    Mensagem  halmeida em Seg 03 Mar 2014, 07:35

    Tente marcar a opção de compactar ao fechar no menu de opções. Neste caso, ao fechar o bd, o access repara qualquer erro q possa existir.
    Tente também compilar o bd pra ver se alguma linha de código está com problema. O procedimento é o seguinte, abra um modulo qualquer, vá em ferramentas, compilar bd.

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Erro de memória de Pilha!

    Mensagem  toyebom em Seg 03 Mar 2014, 21:34

    Tenta retirar os espaços extra entre linhas de comando e a seguir repara e compacta a bd.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Erro de memória de Pilha!

    Mensagem  toyebom em Seg 03 Mar 2014, 21:49

    Ok tirei isto do Yahoo ve se pode ajudar, já agora coloco-te mais alguns links que te poderão ajudar também:

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Tirado do Yahoo:
    Se refere ao programa do VB e o erro é comum.O número de vezes que uma função pode chamar a si mesma é limitado pela quantidade de espaço de pilha disponível. Infelizmente, você não tem controle sobre o tamanho da pilha de chamadas ou sobre como ela é alocada. Se você tiver uma grande quantidade de dados para processar, ou se cada chamada de função acrescentar muitos dados à pilha, acabará ficando sem espaço de pilha. Isso resultará em uma cruel mensagem do VB: “Run-time error: ‘28’ Out of Stack Space” (“Erro em tempo de execução: ‘28’ Espaço de pilha esgotado”). Apesar de querer que seu programa lide com dados de tamanho variável, você não tem como saber de antemão de quanto espaço de pilha ele precisará. Além disso, se desejar usar seu código em outro lugar, precisará estar ciente de que os tamanhos de pilha variam entre as plataformas.
    Para possibilitar a recursão, o sistema operacional fornece a cada programa uma pequena quantidade de espaço na memória, a pilha de chamadas. A rigor, uma pilha é uma estrutura de dados que retorna itens posicionados nela na ordem inversa em que foram adicionados. Em outras palavras, o último item posicionado na pilha deve ser o primeiro removido, e o primeiro item dever ser o último. Esse é o comportamento conhecido como LIFO (last in, first out – último a entrar, primeiro a sair).
    Vc terá consertar isso. basta usar a recursão de dados. Usando uma única função para fazer o loop por todos os dados, você evita os problemas associados à recursão convencional. Ainda que precise de uma pilha de chamadas, você mesmo poderá implementá-la e criar uma que seja dimensionada dinamicamente e em tempo de execução.
    O método Init() define o tamanho da pilha, Push() posiciona os dados nela e Pop() remove seus dados (veja a Listagem 2). O método Pop() também aceita um parâmetro opcional que permite a remoção de um número arbitrário de itens do alto da pilha. A propriedade Value permite a exibição e a alteração dos dados que estejam na pilha no momento. Ela também aceita um índice, que é relativo ao topo da pilha. Use Value(0) para obter o item superior da pilha. Para obter o item seguinte, use Value(1), e assim sucessivamente. CStack também expõe isEmpty(), um método que retorna True quando a pilha está vazia. Clear() reinicializa a pilha toda. Internamente, CStack armazena dados no vetor m_stack, que você pode dimensionar com uma chamada de Init(0). Dois índices controlam o acesso a m_stack(): m_stackPtr, que aponta para o alto da pilha, e m_stackTop, que controla quantos itens você pode colocar na pilha. Quando um item é acrescentado à pilha, m_stackPtr é incrementado em um; quando é retirado da pilha, é decrementado de um. No seu caso a erro no programa que deve ser consertado porquem o criou.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

      Data/hora atual: Qua 07 Dez 2016, 20:12