bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Erro em tempo de execução 91

Erro em tempo de execução 91

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 


 

Usuário Madson:

Avelino,

quando tento utilizar o objRibbon.Invalidate para revalidar a ribbon, depois de carregada, recebo a seguinte mensagem:

Erro em tempo de execução "91";
A variável do objeto ou a variável do bloco "With" não definida
.

Sendo que a variável objRibbon é definida: Public objRibbon As IRibbonUI e depois setada pela rotina fncRibbon(ribbon As IRibbonUI).

Poderia me dar uma luz, de como resolver isso ou me dizer onde estou errando para que eu possa corrigir?

Suporte:

Madson,

esse erro já aconteceu na primeira tentativa de rodar o aplicativo com a ribbon ou aconteceu depois de alguma alteração específica no projeto? Você especificou o nome da ribbon em Opções > Banco de Dados Atual> Nome da faixa de Opções ?

- Abra o seu projeto no Modo Design.

- Abra o VBA e no menu DEPURAR clique em COMPILAR. Se encontrar algum erro, corrija. Repita o COMPILAR até que não encontre mais erro.

Usuário Madson:

O erro ocorre depois que a ribbon foi carregada, quando tento fazer uma alteração.  Exemplo: trocar de usuário ou fazer uma mudança no Xml da ribbon com o usuário logado.

A ribbon está setada em Opções>Bando de dados atual>Nome na faixa de opções.

PS.: o nome da tabela, onde estão gravadas as ribbons, não é a padrão do Microsoft Access (USysRibbons).  Coloquei um nome próprio: pds_ribbon.

Estou te enviando um arquivo exemplo.

Suporte:

Madson,

o erro 91 acontece quando não é possível ter acesso a ribbon carregada na memória.

Segue o seu arquivo exemplo adaptado para o teste.

- abra o aplicativo - uma tela de login será aberta, com a ribbon desabilitada;
- clique no botão logar e sua ribbon será carregada normalmente;
- clique no botão agendar da ribbon;
- um formulário será aberto;
- clique no botão do formulário e observe a Guia Configurações da ribbon sendo visualizada ou não.

Vamos testar agora uma simulação do erro 91:

- abra o código do botão do formulário de login e altere a posição da linha em vermelho para a última posição.

Private Sub Comando0_Click()
objRibbon.Invalidate
DoCmd.Close acDefault
DoCmd.ShowToolbar "ribbon", acToolbarYes 'posicione esta linha aqui no final
End Sub

- salve e feche o aplicativo;
- reabra o aplicativo;
- clique no botão Logar e veja o erro acontecendo.  O motivo é que a ribbon não está disponível (está oculta) no momento da chamada do Invalidate.

Vamos a outra simulação do erro 91:

- retorne com a posição da linha que alteramos para a parte superior do código.
- vá em Arquivo > Opções > Banco de Dados Atual e apague o campo Nome da Faixa de Opções;
- feche o aplicativo;
- retorne a abrir o aplicativo. A ribbon não estará disponível, apesar de ser carregada pela função da    macro AutoExec;
- abra o formulário frmTeste. Clique no botão Seta Guia Configurações e veja o erro 91 ocorrido pelo fato da ribbon não estar disponível naquele momento.

Usuário Madson:

Obrigado Avelino, percebi que a referência à ribbon havia sido perdida, achei que fosse necessário revalidar a carga do objeto: Set objRibbon = ribbon

Bem, coloquei o código DoCmd.ShowToolbar "ribbon",acToolbarYes na frente do objRibbon.Invalidate e a atualização passou.

Estava ocorrendo esse problema também, quando havia a troca do usuário na tela de login.  Como fiz a mesma alteração no código, o erro não está mais acontecendo.

Mais uma vez obrigado.

Download

 


 

 


Não há comentário

Envie seu comentário: