... Pague apenas R$67,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


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:

Configuração da macro AutoExec

 

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:

Falha na abertura arquivo ACCDE

 

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:

Bom estudo!


 

 


1 comentário(s)

Marcio Melo -RJ   19/02/2013 22:05:25

Acabei tendo de usar esse recurso, realmente as pessoas simplesmente reinstalam o officce e nem lembra de atualizar, ainda mas o SP2 do access, resolveu meu problema... simples e eficiente...

Sou mais Brasil!


Envie seu comentário: