... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Alterar referência de acordo com a versão do Office

Usuário Bruno:

Avelino,

Estou com um problema - tenho uma base de dados que tanto corre em Office 2010 como em Office 2013.

O problema acontece ao abrir em Office 2010, com a referência do Outlook que surge como Missing:

Lista de referências

Pretendia que ao abrir o Banco de Dados no Office 2010 esta referência fosse automaticamente atualizada para:

Lista de referências

Pode me ajudar? Cumprimentos.

Suporte:

Bruno, isso é uma falha bem chata. O que você precisa saber:

1- Quando se vai de uma versão menor para uma versão maior, este erro de AUSENTE (missing) não ocorre e tudo funciona direitinho.

2- No entanto, quando se vai de uma versão maior para uma versão menor, esta falha AUSENTE (missing, ocorre.  E como podemos evitar esta falha ? Só conheço essas duas maneiras:

a - Você programar sem indicar a referência, utilizando as variáveis como objetos (Dim objmail As Object). Veja neste meu artigo, uma programação, utilizando o outlook sem marcar a referência (método late binding):

b - Você remover a referência do Outlook, ANTES de carregar o aplicativo na outra versão inferior. Copie o código abaixo, para um módulo global do seu projeto:

Public Function fncAdicionaRef()
Dim refReferencia As Reference
For Each refReferencia In Application.References
    If refReferencia.Name = "Outlook" Then
        blnRef = True
        Exit For
    End If
Next
    If Not blnRef Then
        Application.References.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 0, 0
    End If
End Function
'---------------------------------------------------------------------

Public Sub fncRemoveRef()
Dim ref As Reference
For Each ref In References
    If ref.Name = "outlook" Then
        Application.References.Remove ref
        Exit For
    End If
Next
MsgBox "Removido a referência do Outlook..."
End Sub

A função fncAdicionaRef(), você coloca para ser chamada na macro AuotExec e a sub fncRemoveRef() você coloca em um botão de um formulário.

Quando então for passar seu projeto da versão 2013/2016 para a versão 2010, abra o formulário (na versão 2013/2016) e clique no botão para rodar a sub fncRemoveRef(). Assim, ao abrir o projeto na versão 2010, a função fncAdicionaRef() se encarregará de ativar a referência correta.

Nota: Não adianta utilizar a propriedade IsBrokin, pois esta não trata o erro de AUSÊNCIA ( MISSING ).  Tampouco irá funcionar o método REMOVE para referências AUSENTES (MISSING).

Usuário :

Viva, Sr. Avelino.

Fiz tudo direitinho como explicou, detalhou e funcionou.

Possivelmente já está cansado de ler tantos "Muito Obrigado", mas quando alguém partilha o conhecimento, como você partilha , está sujeito.

Sr. Avelino até a próxima e boa semana de trabalho!


 

 


Não há comentário

Envie seu comentário: