Quais são as implicações da execução de um banco de dados de acesso da Microsoft em 2003 e 2007?

StackOverflow https://stackoverflow.com/questions/75246

  •  09-06-2019
  •  | 
  •  

Pergunta

Quais são as implicações da execução de um banco de dados Microsoft Access em 2003 e 2007?

Tem alguma aula que esqueci de fazer?

O programa foi originalmente construído em 2003 e executado em 2007.Os problemas parecem acontecer quando a máquina em que está sendo executado tem 2003 e 2007.O problema também parece resultar da referência da "Biblioteca de Objetos do Microsoft Access 12.0" (ou da "Biblioteca de Objetos do Microsoft Access 11.0" em 2003).Para ver isso, basta olhar as Ferramentas:Menu de referências na tela do VBA.

O sintoma do erro é basicamente o código não ser reconhecido (quase como se não reconhecesse a linguagem de programação que estou usando).Geralmente segue isso com uma caixa que diz "A expressão On Load que você inseriu como as configurações de propriedade do evento produziu o seguinte erro:Objeto ou classe não suporta o conjunto de eventos”.Você também pode substituir “On Load” por “On Click” para botões ou “On Change” para caixas de texto.

Pessoalmente, suspeito que o computador esteja usando partes da Biblioteca de Objetos do Microsoft Access 11.0/12.0 e depois misture os dois em uma referência VBA inútil.O que confirma ainda mais minha suspeita é a caixa que aparece ao alternar entre os dois que diz "Configurando o Microsoft Access". Outro problema que confirma ainda mais minha suspeita é que ele será executado em qualquer um em que for aberto primeiro (2007, por exemplo) e depois não executado por outro (2003 continuando o exemplo)

O único outro problema que tive que corrigir foi alterar a última parte do DoCmd.OpenForm ,,,,, acFormReadOnly (ou acReadOnly, dependendo de como a máquina parece estar naquele dia específico - sim, funcionaria com um, um dia e depois quero que eu mude para outro) para simplesmente bloquear as caixas de texto individuais

Talvez não seja exatamente codificação, mas acho que pode ser corrigido por codificação.

Espero que isso seja suficiente para alguém inventar algo.

Foi útil?

Solução

A posição oficial da Microsoft é que a instalação de várias versões do Office no mesmo PC não é suportada e não é recomendada, e o Access 2007 parece ter sido projetado para nos provar isso!

Dito isto, você pode evitar a maioria dos problemas fazendo o seguinte:

1 - Dividindo o banco de dados em back-end e front-end.Coloque o back-end (tabelas e relacionamentos) em uma pasta de rede e coloque uma cópia do front-end (todos os outros objetos) na área de trabalho de cada usuário.

2 - É melhor tornar o front end um mde para evitar que as referências sejam embaralhadas toda vez que você abrir o banco de dados na outra versão do Access.

3 - Crie um atalho para abrir o front end com a versão desejada do Access para que seja sempre aberto com essa versão.(E lembre-se de usar o atalho!) No alvo do atalho:

"caminho para Access 12 msaccess.exe" "caminho para db.mdb"

Outras dicas

Temos um aplicativo MS-Acces, desenvolvido com Access 2003 e utilizado na versão completa ou runtime do Access 2003 e Access 2007 (sendo o Access 2007 Runtime gratuito, estamos fazendo um ótimo uso dele!).Não há nenhum problema específico, exceto o gerenciamento de referências.Nosso código analisa a versão do Office instalada no computador e atualiza automaticamente as referências correspondentes (não apenas Access, mas também Excel, Outlook, Word, etc.:o código é muito complicado, mas de grande interesse!)

Até onde sei, nenhum objeto, propriedade ou método importante disponível no Office 2003/VBA foi preterido no Office 2007.O código do Office 2003 será executado com o Access 2007 assim que esses problemas de referência forem resolvidos.Alguns novos objetos foram introduzidos no Office 2007, portanto, não aconselho nenhum desenvolvedor a usá-los para desenvolver código a ser usado posteriormente com o Access 2003.

Mas a questão principal e real da sua pergunta é:por que alguém deveria executar as duas versões do Access no mesmo computador?Isso é o que eu faria se quisesse travar meus aplicativos.Acho que se seus objetivos fossem desenvolver software, você definitivamente deveria encontrar uma configuração melhor para sua máquina!

Em geral, não há suporte para ter várias versões do Access instaladas em uma máquina e resultará nos problemas que você está vendo com as referências de objeto.

Se o banco de dados for criado no Access 2003, compilado em um .MDE e, em seguida, implantado em uma instância separada do Windows executando o Access 2007, você não deverá ter nenhum problema significativo (além de alterações na interface do usuário, como barras de ferramentas personalizadas sendo lançadas nos Suplementos fita).

Para testar em múltiplas versões do Access você precisará de alguma forma de isolamento entre cada versão.Eu uso várias máquinas virtuais para fazer isso.Minha VM principal do Windows executa o Office 2007 e o IE7 e tenho uma segunda VM que possui o Office 2003 e o IE6 para teste.

Observe que se desejar simplesmente usar Word, Excel e Outlook 2007 com o Access 2003, você pode instalar o Access 2003 primeiro sozinho e depois fazer uma instalação personalizada do Office 2007 e desmarcar o Access 2007.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top