MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


+5
pcnet
Assis
Marcelo David
Alvaro Teixeira
DamascenoJr.
9 participantes

    [Resolvido]Qual é a versão Access?

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 16/7/2019, 22:47

    Estou montando meu instalador e preciso detectar corretamente quando o usuário usa o Access 2016, quando usa o Access 2019, e também quando usa o Access 365. Como não tenho essas versões, podem testar e dizer se o instalador detecta corretamente sua versão?

    Obs.: nada é instalado na máquina, apenas uma mensagem é exibida.

    Agradeço
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentDetectaAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (303 Kb) Baixado 59 vez(es)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 17/7/2019, 08:36

    Olá Ivan, teste em duas máquinas:

    [Resolvido]Qual é a versão Access? 076

    Abraço
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Marcelo David 17/7/2019, 13:12

    Uso o Office 365, deu "Access desconhecido"


    .................................................................................
    [Resolvido]Qual é a versão Access? Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Qual é a versão Access? Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Qual é a versão Access? Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Qual é a versão Access? Marcel11
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Assis 17/7/2019, 13:24

    Ivan

    Uso Access 2013 32

    Deu a informação certa

    [Resolvido]Qual é a versão Access? Sem_t107


    Também testei no Access Runtime e deu a mesma informação,


    .................................................................................
    *** Só sei que nada sei ***
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Marcelo David 17/7/2019, 13:45

    Só complementando meu senário: Windows 10 Pro X64 - Office 365 x32.

    Obs:

    Em casa tenho o mesmo cenário e em ambos os locais meu MSACCESS.exe ficam nesse caminho:
    C:\Program Files (x86)\Microsoft Office\root\Office16


    .................................................................................
    [Resolvido]Qual é a versão Access? Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Qual é a versão Access? Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Qual é a versão Access? Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Qual é a versão Access? Marcel11
    pcnet
    pcnet
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 302
    Registrado : 16/12/2015

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  pcnet 17/7/2019, 14:42

    Boa tarde,

    Tentei testar no pc do serviço e como não tenho permissão de administrador não deixou executar.

    Se houvesse forma de contornar essa permissão ficava excelente.

    Abraço
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 17/7/2019, 17:01

    Senhores, antes de tudo agradeço pelo retorno. No momento estou no trabalho e assim que chegar em casa verifico meu código, reajusto e upo uma atualização do executável da primeira mensagem para testarmos. Dando certo, compartilharei o método usado com linhas comentadas.

    pcnet, meus instaladores precisam de permissão de administrador pois quase sempre fazem instalações adicionais (exemplo: driver odbc mysql) ou atualizações mínimas necessárias (services packs) e usam o diretório C para instalação do aplicativo. Tentarei remover esse requisito de permissão já que é apenas para um teste aqui.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 18/7/2019, 05:21

    Voltei, senhores. Enfim encontrei o problema. Uma parte da estrutura do instalador tentar ler a chave abaixo para descobrir se o office é 32 ou 64 bits
    Código:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\VersãoApplicationDoOffice\Outlook\Bitness

    Parecia algo simples, mas o instalador não conseguia o fazer.

    Muitos testes e descubro que para o instalador diversas chaves no registro sequer existiam. Refiz os métodos terceirizando o serviço para um .vbs e também para um .bat e mesmo assim não dava certo quando os executava durante a inicialização do instalador, tal qual acontecia comigo neste tópico.

    Fui ler. Então descobri que o editor de registros do windows pode ser lido de dois modos (32 ou 64 bits) dependendo da ferramenta/programa. Bastou então adicionar a linha abaixo na seção setup do instalador para que assim o regedit pudesse ser lido de ambas as formas (tanto 32 como 64 bits)
    Código:
    ArchitecturesInstallIn64BitMode=x64

    Não sei se isso acontece desde sempre pois estou me deparando com o problema só hoje quando tenho necessidade de fazer verificações na máquina do cliente para tomadas de decisões durante uma instalação automática.

    Aguardo retorno dos senhores sobre o funcionamento do arquivo anexo a esta mensagem.
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentDetectaAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (303 Kb) Baixado 27 vez(es)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Marcelo David 18/7/2019, 11:28

    Aqui ainda continuou a dar Access desconhecido.
    Mandei um print do meu Regedit para você ver como
    é no meu senário.
    Anexos
    [Resolvido]Qual é a versão Access? Attachmentimagens.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (50 Kb) Baixado 17 vez(es)


    .................................................................................
    [Resolvido]Qual é a versão Access? Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Qual é a versão Access? Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Qual é a versão Access? Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Qual é a versão Access? Marcel11
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 18/7/2019, 12:12

    Marcelo, grato. No seu registro, Quais valores existem nos caminhos abaixo?

    Código:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE\Path
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Outlook\Bitness
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Bitness

    E como o office aparece em programas e recursos no seu painel de controle?

    Exemplo:
    [Resolvido]Qual é a versão Access? Pcna10


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Marcelo David 18/7/2019, 12:31

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE\Path

    Print da chave acima na imagem 1.

    Essas 2 chaves são diferentes qui, elas:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Outlook\Bitness
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Bitness

    Elas não tem o Outlook\Bitness, são assim:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0

    O Outlook\Bitness está abaixo das duas, assim:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0
    ..aqui tem outras que não vem ao caso...
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook

    E mesmo assim não tem dentro de Outlook a pasta: Bitness.

    Veja nas imagens.
    Anexos
    [Resolvido]Qual é a versão Access? Attachmentimagens2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (148 Kb) Baixado 24 vez(es)


    .................................................................................
    [Resolvido]Qual é a versão Access? Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Qual é a versão Access? Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Qual é a versão Access? Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Qual é a versão Access? Marcel11
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 18/7/2019, 15:37

    Ok, então. O office 365 não usa essa parte do registro. Farei este tratamento no código e retorno aqui. Creio que o office 2019 já seja detectado pelo instalador.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 18/7/2019, 15:53

    Olá a todos,

    Ivan, com o novo teste obtive o mesmo resultado da mensagem nº 2.
    Estive e pesquisar um pouco, verifiquem com teste script:
    Código:
    Option Explicit
    'ahteixeira 2019 para MaximoAccess
    Dim oShell
    Dim sTemp
    Set oShell = CreateObject("WScript.Shell")
    On Error Resume Next
    sTemp = oShell.RegRead("HKCR\Access.Application\CurVer\")
    If Len(sTemp & "") > 2 Then sTemp= Replace(Right(sTemp, 2), ".", "")
    MsgBox sTemp

    Não tenho nenhuma máquina que não tenha o "office" instalado para testar.
    Mas em todas as que testei funcionou, veja se por aqui consegue resolver.

    Outra coisa, testei no Access 2016 e 2019 e em ambas apresenta 16
    Quem poder testar o script e partilhar o resultado será otimo.

    Abraço a todos
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentvbsAccessVersion.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1 Kb) Baixado 35 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 18/7/2019, 16:07

    Exatamente, mestre Alvaro. Do Access 2016 em diante o resultado para consultas sobre a versão do aplicativo (application.version) será sempre 16.0. A questão agora e detectar quando é o office 2016, 2019 e 365.

    Ontem adaptei o código e consegui detectar quando se tratava do office 2019. Pelas imagens do Marcelo vejo que o office 365 trabalha um pouco diferente com as chaves no registro.

    Farei uma versão com msgbox de cada etapa executada para que possam acompanhar o que o instalador verifica.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 18/7/2019, 16:34

    Olá Ivan,

    Ainda existe pouca informação sobre o tema.
    Eu creio que o Office 365 com licença para Ms-Access o que faz é disponibilizar a última versão "tradicional" do Access.
    No artigo abixo, podemos verificar que é a versão 16.
    support.office.com/pt-br/article/access-incluído-como-parte-do-office-365-business-e-business-premium-f55c8362-5816-4f8b-897d-0a05e7ba0fef

    O que não compreendo é a versão 2019 ser a mesma que o 2016, ou seja 16.

    Estamos a desvendar.

    cheers
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 19/7/2019, 00:03

    Eis o roteiro que o instalador faz (em vbscript). Alvaro, veja se detecta sua versão 2019.

    Código:
    option explicit

    const HKLM = &H80000002
    const SEMERRO = 0

    dim objEdReg
    dim strVerAcc

    Set objEdReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

    if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Windows\CurrentVersion\App Paths\msaccess.exe", "Path", strVerAcc) <> SEMERRO then
       call msgbox("Nenhuma versão Access detectada.", vbinformation,"Ops...")
    else

       strVerAcc = right(strVerAcc, 3)
       strVerAcc = left(strVerAcc, 2)

       select case strVerAcc

          case "12"
             call msgbox("Access 2007 " & Bits(), vbinformation, "Informação")

          case "14"
             call msgbox("Access 2010 " & Bits(), vbinformation, "Informação")

          case "15"
             call msgbox("Access 2013 " & Bits(), vbinformation, "Informação")

          case "16"
             call fncTrabalhaVersao16

          case else
             call msgbox("Você é de outro mundo por está muito atualizado ou muito desatualizado.", vbexclamation, "Alienígena")

       end select

    end if

    set objEdReg = nothing

    sub fncTrabalhaVersao16()

       dim strKeyPath
       dim arrSubKeys
       dim subkey
       dim strVerOffice

       if win64 and Bits() = "32 bits" then
          strKeyPath = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
       else
          strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
       end if

       call objEdReg.EnumKey(HKLM, strKeyPath, arrSubKeys)

       for each subkey in arrSubKeys

          if left(subkey, 1) <> "{" Then

             call objEdReg.GetStringValue(HKLM, strKeyPath & "\" & subkey, "DisplayName", strVerOffice)
                
             if instr(strVerOffice, "Microsoft Office") then
                if instr(strVerOffice, "2016") then
                   call msgbox("Access 2016 " & Bits(), vbinformation, "Informação")
                   exit sub
                elseif instr(strVerOffice, "2019") then
                   call msgbox("Access 2019 " & Bits(), vbinformation, "Informação")
                   exit sub
                elseif instr(strVerOffice, "365") then
                   call msgbox("Access 365 " & Bits(), vbinformation, "Informação")
                   exit sub
                end if
             end if

          end if

       next

       call msgbox("Access desconhecido.", vbexclamation, "Ops...")

    end sub

    function win64()

       dim objWMIService
       dim colOperatingSystems
       dim objOperatingSystem

       set objWMIService = getObject("winmgmts:\\.\root\cimv2")
       set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

       for each objOperatingSystem in colOperatingSystems
          win64 = instr(objOperatingSystem.OSArchitecture,"64") > 0
       next

    end function

    function Bits()

       dim strBits

       if win64 then
          if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\" & strVerAcc & ".0\Outlook", "Bitness", strBits) = SEMERRO then
             if strBits = "x64" then
                Bits = "64 bits"
             else
                Bits = "32 bits"
             end if
          else
             Bits = "32 bits"
          end if
       else
          Bits = "32 bits"
       end if

    end function
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentDetectaAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Kb) Baixado 23 vez(es)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 19/7/2019, 12:36

    Olá Ivan, a mesma situação da mensagem nº 2.

    E como podemos verificar na imagem o 2019 ainda é a versão 16.
    Parece que no 365 também é, veja:
    tomtalks.blog/2016/01/choose-office-2016-branch-local-group-policy/

    Este artigo apesar de ser para o 2010 descreve bem as entradas de registo do Office:
    support.microsoft.com/en-us/help/2186281/description-of-the-numbering-scheme-for-product-code-guids-in-office-2

    Também se levanta outra questão no script, pois pode ter o Office instalado sem o Access.
    Veja melhor o meu ultimo exemplo e solicito aos colegas para testar numa máquina com Office sem o Access instalado.

    Abraço a todos
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 20/7/2019, 05:32

    Mestre Marcelo, mestre Alvaro e demais usuários, pelas situações ocorridas, imagens anexadas, artigos aqui indicados, e tendo agora instalado uma versão ClickToRun (assim como vocês), creio ter montado o script correto.

    Código:
    option explicit

    const HKLM = &H80000002
    const SEMERRO = 0

    dim objEdReg
    dim strVerAcc
    dim booClickToRun

    Set objEdReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

    if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Windows\CurrentVersion\App Paths\msaccess.exe", "Path", strVerAcc) <> SEMERRO then
      call msgbox("Nenhuma versão Access detectada.", vbinformation,"Ops...")
    else

      strVerAcc = right(strVerAcc, 3)
      strVerAcc = left(strVerAcc, 2)

      select case strVerAcc

          case "12"
            call msgbox("Access 2007 " & Bits(), vbinformation, "Informação")

          case "14"
            call msgbox("Access 2010 " & Bits(), vbinformation, "Informação")

          case "15"
            call msgbox("Access 2013 " & Bits(), vbinformation, "Informação")

          case "16"
            call fncTrabalhaVersao16

          case else
            call msgbox("Você é de outro mundo por está muito atualizado ou muito desatualizado.", vbexclamation, "Alienígena")

      end select

    end if

    set objEdReg = nothing

    sub fncTrabalhaVersao16()

      dim strKeyPath
      dim arrSubKeys
      dim subkey
      dim strVerOffice

      booClickToRun = false

      if win64 then
          if Bits() = "32 bits" then
            if not booClickToRun then
                strKeyPath = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
            else
                strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
            end if
          else
            strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
          end if
      else
          strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
      end if

      call objEdReg.EnumKey(HKLM, strKeyPath, arrSubKeys)

      for each subkey in arrSubKeys

          if left(subkey, 1) <> "{" Then

            call objEdReg.GetStringValue(HKLM, strKeyPath & "\" & subkey, "DisplayName", strVerOffice)
               
            if instr(strVerOffice, "Microsoft Office") or instr(strVerOffice, "Microsoft Access") or instr(strVerOffice, "Microsoft 365") then
                if instr(strVerOffice, "2016") and left(subkey, 9)="Office16." then
                  call msgbox("Access 2016 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "2019") then
                  call msgbox("Access 2019 " & Bits(), vbinformation, "Informação")
                  exit sub
           elseif instr(strVerOffice, "2021") then
                  call msgbox("Access 2021 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "365") or (instr(strVerOffice, "2016") and left(subkey, 9)<>"Office16.") then
                  call msgbox("Access 365 " & Bits(), vbinformation, "Informação")
                  exit sub
                end if
            end if

          end if

      next

      call msgbox("Access desconhecido.", vbexclamation, "Ops...")

    end sub

    function win64()

      dim objWMIService
      dim colOperatingSystems
      dim objOperatingSystem

      set objWMIService = getObject("winmgmts:\\.\root\cimv2")
      set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

      for each objOperatingSystem in colOperatingSystems
          win64 = instr(objOperatingSystem.OSArchitecture,"64") > 0
      next

    end function

    function Bits()

      dim strBits

      strBits = ""

      if not win64 then
          Bits = "32 bits"
          exit function
      end if

      if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\" & strVerAcc & ".0\Outlook", "Bitness", strBits) <> SEMERRO then
          if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\ClickToRun\Configuration", "Platform", strBits) = SEMERRO then
            booClickToRun = true
          else
            Bits = "32 bits"
            exit function
          end if
      end if

      if strBits = "x64" then
          Bits = "64 bits"
      else
          Bits = "32 bits"
      end if

    end function
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentDetectaAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Kb) Baixado 42 vez(es)


    Última edição por DamascenoJr. em 13/4/2022, 00:55, editado 2 vez(es) (Motivo da edição : Script detectando MS Access 2021)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 20/7/2019, 18:54

    Olá a todos,

    Ivan, agora funcionou no Access 2019 32 Bits e também no 2016 32 Bits também.
    Foi nos que tenho oportunidade de testar.

    Abraço
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 20/7/2019, 20:41

    Obrigado pelo retorno, mestre Alvaro. Vale-me muito.

    Veremos como o código se sairá com office 365.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    pcnet
    pcnet
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 302
    Registrado : 16/12/2015

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  pcnet 21/7/2019, 18:32

    Boa tarde mestre Ivan,

    Tentei testar no meu pc pessoal com o Windows 8.1 instalado, mas não tive sucesso.
    Apareceu este erro:
    [Resolvido]Qual é a versão Access? Erro11


    Testei com outro exemplo partilhado pelo mestre Álvaro Teixeira e apresentou a versão instalada.
    [Resolvido]Qual é a versão Access? Versze11

    Abraço
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 21/7/2019, 20:47

    Ok, pcnet... esse problema vai ser algo mais específico da linguagem vbscrip com o win8.1

    Havia deixado nessa linguagem pra que pudessem ver como as verificações são feitas.

    Tenta no instalador real em formato .exe

    Aguardo...
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentDetectaAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (303 Kb) Baixado 55 vez(es)


    Última edição por IvanJr. em 21/7/2019, 21:39, editado 1 vez(es) (Motivo da edição : Atualização de arquivo)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    pcnet
    pcnet
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 302
    Registrado : 16/12/2015

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  pcnet 21/7/2019, 21:06

    Boa noite mestre Ivan,

    Testado com êxito cheers

    Eis o teste:
    [Resolvido]Qual é a versão Access? Teste_10

    Abraço
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 21/7/2019, 21:40

    Very Happy bounce

    Valeu, meu nobre. Obrigado pelo retorno.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Marcelo David 22/7/2019, 02:02

    Windows 10 x64 - Office 365 x32. Deu certo aqui!!
    Anexos
    [Resolvido]Qual é a versão Access? Attachmentfunfou.png
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Kb) Baixado 14 vez(es)


    .................................................................................
    [Resolvido]Qual é a versão Access? Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Qual é a versão Access? Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Qual é a versão Access? Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Qual é a versão Access? Marcel11
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Fernando Bueno 22/7/2019, 03:26

    Boa noite, funcionou na perfeição!!

    [Resolvido]Qual é a versão Access? Sem_tz10


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Qual é a versão Access? 16rzeq
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 23/7/2019, 02:38

    cheers

    Agradeço por me ajudarem testando e dando os retornos.

    Tudo resolvido então.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 23/7/2019, 04:20



    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 4/8/2019, 03:18

    Enriquecendo o tópico
    mendipdatasystems.co.uk/access-office365-win-check/4594488974


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 4/8/2019, 12:15

    Olá Ivan,

    Obrigado pela dica, o fórum agradece.

    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 30/8/2019, 15:57

    Olá a todos,

    Ivan, Passeio por um computador com o Office Casa e Negócios (que não tem Access), por essa razão é que tem o Runtime do 2003 e testei com a última versão disponibilizada:
    [Resolvido]Qual é a versão Access? 087

    Com o script da mensagem nº 13 apresenta que tem a versão 11.

    Abraço
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 1/9/2019, 02:09

    Obrigado por informar, meste Alvaro.

    Mensagem personalizada nos conformes do código da mensagem nº 18 rsrsrs



    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 13/4/2022, 00:57

    script da mensagem nº 18 atualizado.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Silvio 13/4/2022, 12:08

    [Resolvido]Qual é a versão Access? Forum510

    Boas...aqui funfou !!!


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

    DamascenoJr. gosta desta mensagem

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 13/4/2022, 22:58

    Opa, valeu por testar, meu nobre. cheers


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1098
    Registrado : 23/03/2010

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Finformática 14/4/2022, 00:09

    [Resolvido]Qual é a versão Access? Captur10

    Testei, funcionou.

    Abraços

    DamascenoJr. gosta desta mensagem

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 14/4/2022, 00:14

    Smile


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 14/4/2022, 13:22

    Olá Ivan,

    Em todos que testei ok, menos no meu portatil que tem as ultimas versoes, veja
    [Resolvido]Qual é a versão Access? Sem_tz10

    Abraço
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  DamascenoJr. 14/4/2022, 23:35

    Mestre Alvaro, pela mensagem, o código está detectando seu Access 2003. Só fiz mensagem personalizada do 2007 e superiores. Rolling Eyes

    Mas fiquei curioso sobre a versão portatil. study


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 21/4/2022, 21:38

    Olá Ivan,

    Como pode ver na imagem, em Março fiz atualização do meu portatil para Windows 11 e optei por fazer o download da ultima versão o Office Professional Plus 2021.
    No entanto é verdade tenho o 2003 instalado juntamente com a versão que referi.
    Desde a versao 2016 que costumo fazer a instalação de ambas (2003 32 bit e 2016 64 bits) e não tenho tido problemas.

    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 22/4/2022, 23:41

    Olá Ivan,

    Hoje tive um tempinho e atualizei de codigo a detetar o 2003 e o 2021, já testei no 2021 e funciona, veja:
    [Resolvido]Qual é a versão Access? 0200

    Ficou assim o código do meu teste
    Código:
    option explicit
    'update 22-04-2022
    const HKLM = &H80000002
    const SEMERRO = 0

    dim objEdReg
    dim strVerAcc
    dim booClickToRun

    Set objEdReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

    if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Windows\CurrentVersion\App Paths\msaccess.exe", "Path", strVerAcc) <> SEMERRO then
      call msgbox("Nenhuma versão Access detectada.", vbinformation,"Ops...")
    else

      strVerAcc = right(strVerAcc, 3)
      strVerAcc = left(strVerAcc, 2)

      select case strVerAcc

          Case "11"
            Call MsgBox("Access 2003 32 bits", vbInformation, "Informação")
          
          case "12"
            call msgbox("Access 2007 " & Bits(), vbinformation, "Informação")

          case "14"
            call msgbox("Access 2010 " & Bits(), vbinformation, "Informação")

          case "15"
            call msgbox("Access 2013 " & Bits(), vbinformation, "Informação")

          case "16"
            call fncTrabalhaVersao16

          case else
            call msgbox("Você é de outro mundo por está muito atualizado ou muito desatualizado.", vbexclamation, "Alienígena")

      end select

    end if

    set objEdReg = nothing

    sub fncTrabalhaVersao16()

      dim strKeyPath
      dim arrSubKeys
      dim subkey
      dim strVerOffice

      booClickToRun = false

      if win64 then
          if Bits() = "32 bits" then
            if not booClickToRun then
                strKeyPath = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
            else
                strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
            end if
          else
            strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
          end if
      else
          strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
      end if

      call objEdReg.EnumKey(HKLM, strKeyPath, arrSubKeys)

      for each subkey in arrSubKeys

          if left(subkey, 1) <> "{" Then

            call objEdReg.GetStringValue(HKLM, strKeyPath & "\" & subkey, "DisplayName", strVerOffice)

            if instr(strVerOffice, "Microsoft Office") or instr(strVerOffice, "Microsoft Access") then

                if instr(strVerOffice, "2016") then
                  call msgbox("Access 2016 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "2019") then
                  call msgbox("Access 2019 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "2021") then
                  call msgbox("Access 2021 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "365") then
                  call msgbox("Access 365 " & Bits(), vbinformation, "Informação")
                  exit sub
                end if
            end if

          end if

      next

      call msgbox("Access desconhecido.", vbexclamation, "Ops...")

    end sub

    function win64()

      dim objWMIService
      dim colOperatingSystems
      dim objOperatingSystem

      set objWMIService = getObject("winmgmts:\\.\root\cimv2")
      set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

      for each objOperatingSystem in colOperatingSystems
          win64 = instr(objOperatingSystem.OSArchitecture,"64") > 0
      next

    end function

    function Bits()

      dim strBits

      strBits = ""

      if not win64 then
          Bits = "32 bits"
          exit function
      end if

      if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\" & strVerAcc & ".0\Outlook", "Bitness", strBits) <> SEMERRO then
          if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\ClickToRun\Configuration", "Platform", strBits) = SEMERRO then
            booClickToRun = true
          else
            Bits = "32 bits"
            exit function
          end if
      end if

      if strBits = "x64" then
          Bits = "64 bits"
      else
          Bits = "32 bits"
      end if

    end function


    Nota, no portátil, que tem as duas versões estaladas deteta a versão 2003, assim que disponha de algum tempo vou tentar ver se consigo fazer mostrar as versoes instaladas.
    Aproveito para deixar link de outro metodo que vai verificar no licenciamento
    excelguru.ca/blog/2019/02/11/check-the-application-version-in-modern-office/

    Abraço
    avatar
    andre santos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 18/10/2023

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  andre santos 18/10/2023, 22:53

    Boa noite,

    Estou precisando de uma ajuda por favor,

    Estou tentando utilizar esta solução dentro do meu aplicativo, baixei o script, testei e funcionou legal identificando as informações corretamente, ai transcrevi para um módulo padrão dentro do Ms Access 2019 32 Bits que utilizo, pois estou querendo que quando o usuario executar o access eu consiga saber qual a versão do S.O. e qual a do Access, mas ele retorna a mensagem : Ops... Access não Reconhecido. mas ele já identificou  no script e não mudei praticamente nada.

    Eu fui verificando passo a passo e notei que ele sempre verifica a entrada de registro Wow6432Node independente de mim alterar para teste  a Const HKLM = &H80000002

    If Not booClickToRun Then
               strKeyPath = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
            Else
               strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    End If


    Código:


    Option Explicit


    Const HKLM = &H80000002
    Const SEMERRO = 0

    Public objEdReg
    Public strVerAcc
    Public booClickToRun

    Public Sub teste()


    Set objEdReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

    If objEdReg.GetStringValue(HKLM, "Software\Microsoft\Windows\CurrentVersion\App Paths\msaccess.exe", "Path", strVerAcc) <> SEMERRO Then
       Call MsgBox("Nenhuma versão Access detectada.", vbInformation, "Ops...")
    Else

       strVerAcc = Right(strVerAcc, 3)
       strVerAcc = Left(strVerAcc, 2)

       Select Case strVerAcc

          Case "12"
             Call MsgBox("Access 2007 " & Bits(), vbInformation, "Informação")

          Case "14"
             Call MsgBox("Access 2010 " & Bits(), vbInformation, "Informação")

          Case "15"
             Call MsgBox("Access 2013 " & Bits(), vbInformation, "Informação")

          Case "16"
             Call fncTrabalhaVersao16

          Case Else
             Call MsgBox("Você é de outro mundo por está muito atualizado ou muito desatualizado.", vbExclamation, "Alienígena")

       End Select

    End If

    Set objEdReg = Nothing

    End Sub

    Sub fncTrabalhaVersao16()

       Dim strKeyPath
       Dim arrSubKeys
       Dim subkey
       Dim strVerOffice

       booClickToRun = False

       If win64 Then
          If Bits() = "32 bits" Then
             If Not booClickToRun Then
                strKeyPath = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
             Else
                strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
             End If
          Else
             strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
          End If
       Else
          strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
       End If

       Call objEdReg.EnumKey(HKLM, strKeyPath, arrSubKeys)

       For Each subkey In arrSubKeys

          If Left(subkey, 1) <> "{" Then

             Call objEdReg.GetStringValue(&H80000002, strKeyPath & "\" & subkey, "DisplayName", strVerOffice)
                
             If InStr(strVerOffice, "Microsoft Office") Or InStr(strVerOffice, "Microsoft Access") Then
                If InStr(strVerOffice, "2016") Then
                   Call MsgBox("Access 2016 " & Bits(), vbInformation, "Informação")
                   Exit Sub
                ElseIf InStr(strVerOffice, "2019") Then
                   Call MsgBox("Access 2019 " & Bits(), vbInformation, "Informação")
                   Exit Sub
                ElseIf InStr(strVerOffice, "365") Then
                   Call MsgBox("Access 365 " & Bits(), vbInformation, "Informação")
                   Exit Sub
                End If
             End If

          End If

       Next

       Call MsgBox("Access desconhecido.", vbExclamation, "Ops...")

    End Sub

    Function win64()

       Dim objWMIService
       Dim colOperatingSystems
       Dim objOperatingSystem

       Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
       Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

       For Each objOperatingSystem In colOperatingSystems
          win64 = InStr(objOperatingSystem.OSArchitecture, "64") > 0
       Next

    End Function

    Function Bits()

       Dim strBits

       strBits = ""

       If Not win64 Then
          Bits = "32 bits"
          Exit Function
       End If

       If objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\" & strVerAcc & ".0\Outlook", "Bitness", strBits) <> SEMERRO Then
          If objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\ClickToRun\Configuration", "Platform", strBits) = SEMERRO Then
             booClickToRun = True
          Else
             Bits = "32 bits"
             Exit Function
          End If
       End If

       If strBits = "x64" Then
          Bits = "64 bits"
       Else
          Bits = "32 bits"
       End If

    End Function




    Obrigado
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 19/10/2023, 15:27

    Olá André Santos,

    Testei no 2019 a 32 Bits e funcionou, veja:
    [Resolvido]Qual é a versão Access? 0245


    Entretanto fiz uma atualização, pois não estava a mostrar o Microsoft 365 Apps for business, veja:
    [Resolvido]Qual é a versão Access? 0246

    Como podemos verificar este scritp está a ir buscar ao informação "aos programas instalados".
    Segue o ficheiro e código atualizado:
    Código:
    option explicit
    'Updated 19-10-2023 by Alvaro Teixeira to MaximoAccess.com
    const HKLM = &H80000002
    const SEMERRO = 0

    dim objEdReg
    dim strVerAcc
    dim booClickToRun

    Set objEdReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

    if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Windows\CurrentVersion\App Paths\msaccess.exe", "Path", strVerAcc) <> SEMERRO then
      call msgbox("Nenhuma versão Access detectada.", vbinformation,"Ops...")
    else

      strVerAcc = right(strVerAcc, 3)
      strVerAcc = left(strVerAcc, 2)

      select case strVerAcc

          Case "11"
            Call MsgBox("Access 2003 32 bits", vbInformation, "Informação")
         
          case "12"
            call msgbox("Access 2007 " & Bits(), vbinformation, "Informação")

          case "14"
            call msgbox("Access 2010 " & Bits(), vbinformation, "Informação")

          case "15"
            call msgbox("Access 2013 " & Bits(), vbinformation, "Informação")

          case "16"
            call fncTrabalhaVersao16

          case else
            call msgbox("Você é de outro mundo por está muito atualizado ou muito desatualizado.", vbexclamation, "Alienígena")

      end select

    end if

    set objEdReg = nothing

    sub fncTrabalhaVersao16()

      dim strKeyPath
      dim arrSubKeys
      dim subkey
      dim strVerOffice

      booClickToRun = false

      if win64 then
          if Bits() = "32 bits" then
            if not booClickToRun then
                strKeyPath = "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
            else
                strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
            end if
          else
            strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
          end if
      else
          strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Uninstall"
      end if

      call objEdReg.EnumKey(HKLM, strKeyPath, arrSubKeys)

      for each subkey in arrSubKeys

          if left(subkey, 1) <> "{" Then

            call objEdReg.GetStringValue(HKLM, strKeyPath & "\" & subkey, "DisplayName", strVerOffice)

            if instr(strVerOffice, "Microsoft Office") or instr(strVerOffice, "Microsoft Access") or instr(strVerOffice, "Microsoft 365") then

                if instr(strVerOffice, "2016") then
                  call msgbox("Access 2016 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "2019") then
                  call msgbox("Access 2019 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "2021") then
                  call msgbox("Access 2021 " & Bits(), vbinformation, "Informação")
                  exit sub
                elseif instr(strVerOffice, "365") then
                  call msgbox("Access 365 " & Bits(), vbinformation, "Informação")
                  exit sub
                end if
            end if

          end if

      next
    call msgbox(strVerOffice &"1", vbinformation, "Informação")
      call msgbox("Access desconhecido.", vbexclamation, "Ops...")

    end sub

    function win64()

      dim objWMIService
      dim colOperatingSystems
      dim objOperatingSystem

      set objWMIService = getObject("winmgmts:\\.\root\cimv2")
      set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

      for each objOperatingSystem in colOperatingSystems
          win64 = instr(objOperatingSystem.OSArchitecture,"64") > 0
      next

    end function

    function Bits()

      dim strBits

      strBits = ""

      if not win64 then
          Bits = "32 bits"
          exit function
      end if

      if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\" & strVerAcc & ".0\Outlook", "Bitness", strBits) <> SEMERRO then
          if objEdReg.GetStringValue(HKLM, "Software\Microsoft\Office\ClickToRun\Configuration", "Platform", strBits) = SEMERRO then
            booClickToRun = true
          else
            Bits = "32 bits"
            exit function
          end if
      end if

      if strBits = "x64" then
          Bits = "64 bits"
      else
          Bits = "32 bits"
      end if

    end function


    Abraço a todos
    Anexos
    [Resolvido]Qual é a versão Access? AttachmentDetectaAccess_rev2023.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Kb) Baixado 7 vez(es)
    avatar
    andre santos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 18/10/2023

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  andre santos 19/10/2023, 22:19

    Obrigado pela atenção mas você executou de dentro de um módulo dentro de um arquivo do Access ou foi por um arquivo vbs ou exe?

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 20/10/2023, 01:09

    Olá André Santos,
    Antes de tudo seja Bem-Vindo ao fórum (só agora é que vi que é membro novo).

    Neste caso é VBS , devemos executar com duplo click num ficheiro com extensão .vbs

    Abraço
    avatar
    andre santos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 18/10/2023

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  andre santos 30/10/2023, 15:49

    Obrigado pela ajuda,

    Consegui o que precisava, alterei o script para que ele :
    1-Dentro do Access criei um módulo e executei o script alterado;
    2-Limpo a área de transferência do Windows
    3-Cole o resultado do script na área de transferência
    4-Novamente no MS Access obtenho o dado na área de transferência e verifico o que preciso baseando-se no que foi obtido da área de transferência .

    Obrigado
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Alvaro Teixeira 2/11/2023, 18:17

    Olá André Santos,

    Fico feliz por ter conseguido resolver.
    Se desejar, pode partilhar o código adaptado, o fórum agradece.

    Abraço
    avatar
    andre santos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 18/10/2023

    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  andre santos 9/11/2023, 14:33

    Vou sim, em breve posto, no momento estou em viagem

    Conteúdo patrocinado


    [Resolvido]Qual é a versão Access? Empty Re: [Resolvido]Qual é a versão Access?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 21:38