Não deixar abrir se não tiver o Service Pack 2 instalado
As primeiras versões do Office 2007 vieram com uma série de bugs. O pacote de atualização Service Pack 2 (SP2) veio corrigindo a maioria desses problemas e trazendo novidades! Dentre elas, a possibilidade de converter os objetos do Access em PDF, sem o uso de ferramentas de terceiros.
Na prática, essa diferença de versões, estava me trazendo problemas quando os clientes precisavam reinstalar o Office 2007. É que na reinstalação, esqueciam de atualizar o Office com o Service Park adequado. E lá ia eu, atender ao chamado do cliente, pois o aplicativo apresentava um monte de problemas.
Para resolver esta questão, criei uma função para os aplicativos, que identifica a versão do Access instalada. Caso não esteja com a versão correta, a função gera uma mensagem do ocorrido, solicitando a atualização do Office e abortando a abertura do aplicativo.
Insira o código abaixo em um módulo global:
Public Function fncDesatualizado() As Boolean Dim strbox As String If Application.Version = "12.0" Then 'versão do Access 2007
'o comando SysCmd(715) é o responsável pela identificação da versão
Select Case CLng((Int(Application.Version) / 10) & SysCmd(715))
Case 124017, 124518, 126211
'4017 Access 2007 (Beta-1)
'4518 Access 2007 Sem SP
'6211 Access 2007 SP1
'6423 Access 2007 SP2
strbox = "O Maestro detectou que o seu Office 2007 não está atualizado "
strbox = strbox & "com o Service Pack 2 ou superior."
strbox = strbox & vbCrLf & vbCrLf
strbox = strbox & "Não será possível usar o aplicativo enquanto o Office "
strbox = strbox & "não for atualizado."
MsgBox strbox, vbCritical, "Aviso"
'Sair do aplicativo
fncDesatualizado = True
Case 126304
'6304 Access 2007 runtime
strbox = "O Maestro detectou que o seu Access 2007 runtime não está "
strbox = strbox & "atualizado com o Service Pack 2 ou superior."
strbox = strbox & vbCrLf & vbCrLf
strbox = strbox & "Não será possível usar o aplicativo enquanto o Access "
strbox = strbox & "não for atualizado."
MsgBox strbox, vbCritical, "Aviso"
'Sair do aplicativo
fncDesatualizado = True
End Select
ElseIf Application.Version = "14.0" Then 'versão do Access 2010
Select Case Clng(CInt(Application.Version) & SysCmd(715))
Case 144417
'4417 Access 2010 (Beta-1)
'4514 Access 2010 (Beta-2)
strbox = "O Maestro detectou que o seu Office 2010 não é o Beta 2."
strbox = strbox & vbCrLf & vbCrLf
strbox = strbox & "Não será possível usar o aplicativo enquanto o Office "
strbox = strbox & "não for atualizado."
MsgBox strbox, vbCritical, "Aviso"
'Sair do aplicativo
fncDesatualizado = True
End Select
End If
End Function
Crie a macro de inicialização AutoExec e use o campo da condição para verificar o valor de retorno da função fncDesatualizado(). Caso retorne o valor verdadeiro o aplicativo será fechado, através da ação Sair. Veja a figura abaixo:

Toda vez que o aplicativo for iniciado, a função irá verificar se está rodando na versão correta.
Problemas com o uso na extensão ACCDE.
Se você gerou um ACCDE, através do Office 2007 SP2 , ele não será reconhecido pelas versões anteriores do Office 2007.
Observe a mensagem ao tentar rodar um ACCDE (SP2), num Office desatualizado:

Portanto, o código oferecido acima é inútil se você estiver rodando seus aplicativos no formato ACCDE.
Se tentar rodar o ACCDE (Access 2007 SP2) no Access 2010 beta 1 ou 2 terá problemas também.
A conclusão é que você deve gerar o ACCDE em função da versão que o cliente estiver usando naquele momento. Se ele estava usando o SP1 e você resolveu atualizar o Office 2007 dele com o Sp2, deverá gerar um novo ACCDE do aplicativo, para esta nova versão atualizada. Se resolveu instalar o Office 2010 beta 2, gere o ACCDE no próprio beta 2. Muito atento com isso,então! OK?
Como distribuir um ACCDE que você não sabe a versão que o destinatário está usando ?
No meu caso, eu utilizo o arquivo instalador InnoSetup/IStool , no qual criei uma rotina de verificação da versão do Office. De acordo com a versão identificada do Office, o programa instala o ACCDE correto na máquina do usuário. Como exemplo, o aplicativo Montaribbons, que ofereço aqui no site, só é instalado se o usuário estiver com o Office 2007 Sp2 ou com o Office 2010 beta 2.
Se não fizer uso de um instalador com este recurso, procure sinalizar ao usuário , a necessidade de atualização do Office, para que o seu aplicativo funcione de forma correta.
Para baixar o pacote de atualização SP2 do Office 2007, clique no seguinte link:
Os dez artigos mais visitados
MontaRibbons v3.1 - Assistente completo para criar ribbons no Access
Utilizando Classe no Access - Introdução
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Criando Ribbons parte 1 - Conhecendo a estrutura Xml
Vídeo - Segurança máxima, usando o OPEN
DVD - Coletânea de artigos, vídeos e exemplos do site
Vídeo - Manutenção e Sistema de Backup com Barra de Progresso
Vinculando tabelas com barra de progresso ( front-end x back-end )
Vídeo - Criando Ribbons parte 4 - Imagens externas em pasta local
Gerar relatórios em pdf e enviar por email
| Não há comentário |