MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Compartilhe

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  M2013 em Seg 14 Dez 2015, 16:46

    Alguém conhece alguma rotina que verifica o que está instalado na máquina de MS-Access ?
    Tipo como indicar que uma versão de runtime ou uma versão do Access está instalada.


    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  JPaulo em Seg 14 Dez 2015, 17:11

    Se pretender fazer ao abrir de um form;

    Código:
    Private Sub Form_Open(Cancel As Integer)
    If SysCmd(acSysCmdRuntime) = True Then
       MsgBox "Runtime"
       Else
       MsgBox "Ms Access"
       End If
    End Sub


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    Re: [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  M2013 em Seg 14 Dez 2015, 17:32

    Obrigado pela resposta JPaulo.

    Então, na verdade estou querendo é bloquear a abertura de um banco de dados de acordo com a versão do runtime e/ou versão do Access.
    Pelo seu código, pude pesquisar e achei esses parametros que indicam a versão:

    SysCmd(acSysCmdAccessVer)
    SysCmd(acSysCmdRuntime)

    Porém, não sei se você tem essa relação, ele indica uma versão diferente da comercial, isto é:
    a versão...

    2000= 9.0  ;
    Office XP= 10.0 ;
    2003 = 11.0 ;
    2007 = 12.0 ;
    2010= 14.0;

    Mas não consegui achar essa correlação para os runtimes........ Saberia dizer onde posso encontrar?

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3347
    Registrado : 04/04/2010

    Re: [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  Avelino Sampaio em Seg 14 Dez 2015, 19:29

    Olá!

    veja se este meu artigo ajuda

    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso!



    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    Re: [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  M2013 em Ter 15 Dez 2015, 10:15

    Olá Avelino, obrigado pela resposta.

    Ajudou bastante com 'Application.Build' onde posso juntamente com 'Application.Version' descobrir a versão/compilação do Access.

    Estou a procura de um tabela onde teria uma relação das versões/compilações dos pacotes Office já lançados até hoje.

    abraço


    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2483
    Registrado : 29/06/2012

    Re: [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  Noobezinho em Ter 15 Dez 2015, 11:07

    Marcelo

    As vezes, olhamos algo e não enxergamos o que vimos. Razz

    Então, a pergunta que não quer calar:

    Como irá testar a versão do Access no computador do cliente através

    do Access, se ele não irá rodar se forem de versões diferentes?

    No site do Avelino, se prestou atenção, diz:

    "No meu caso, eu utilizo o arquivo instalador InnoSetup/IStool , no qual criei uma rotina de verificação da versão do Office."

    Ou seja, com o Access não adianta, se ele nem vai rodar, não tem como testar.

    Portanto, se quer fazer algo profissional , acate a dica do Avelino

    Veja parte do algoritmo feito no  InnoSetup/IStool , que testa a versão do Windows (32 ou 64) e a versão do Office:
    Código:

    if isWin64 then ' se é windows 64
          begin
                if (RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\wow6432node\Microsoft\Office\14.0\Access\InstallRoot','Path', Pasta)) or
                   (RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\wow6432node\Microsoft\Office\12.0\Access\InstallRoot','Path', Pasta)) then
                   begin
                   retorno :=  'verdade';  // access 2007 e 2010 32 bits, roda o meu aplicativo
                   Result  := retorno;
                   end

                 else if(RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\Microsoft\Office\14.0\Access\InstallRoot','Path', Pasta)) then
                      begin
                      retorno :=  'false'; // O win64 está com o Access 2010 64 bits, portanto, nossa aplicação não roda nele, então defino o retorno como false
                                          // para instalar o runtime
                      Result  := retorno;
                      end
           end
      else   //(win32)
           begin
           if (RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\Microsoft\Office\14.0\Access\InstallRoot','Path', Pasta)) then
              begin
              retorno :=  'verdade';  // 2010 32 bits, roda o meu aplicativo
              Result  := retorno;
              end

           else if (RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\Microsoft\Office\12.0\Access\InstallRoot','Path', Pasta)) then
                begin
                      accver := AccessVersion();
                      versao :=StrToInt(copy(accver,6,pos('.',accver)+1))
                      if versao  >= 6425 then     //6425 = runtime
                         begin

                            //MsgBox( 'A Versão ('+ accver +') do MS Access está instalada.',mbInformation, MB_OK );
                              retorno :=  'verdade';
                               Result := retorno;
                         end
                      else begin

    A linguagem é Delphi, então terá que aprender um pouco,para poder fazer teu instalador.

    Eu ralei pra fazer esse meu instalador, mas ficou como eu pretendia. Wink


    *Nascidos em 10/04  sunny
    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    Re: [Resolvido]Rotina para verificar se existe Runtime ou Access na máquina

    Mensagem  M2013 em Ter 15 Dez 2015, 13:08

    Noobezinho, muito obrigado pela resposta.



      Data/hora atual: Sab 03 Dez 2016, 04:33