MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

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.

    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9546
    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


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

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

    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?
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3390
    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!


    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

    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    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: Sex 22 Set 2017, 07:24