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]Código para office 2007 32 bits e 2013 32 e 64 bits

    Compartilhe

    ton0612
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 273
    Registrado : 30/03/2011

    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  ton0612 em Qua 26 Ago 2015, 15:21

    Bom dia Pessoal.
    Eu li vários tópicos a respeito deste assunto, porém não consegui resolver o meu problema, apesar de ser muito próximo a cada tópico lido...
    Inclusive li o tutorial do mestre avelino em sua página.

    o que acontece é o seguinte: atualmente usamos o office 2007 32 bits em sistemas windows 64 bits e 32 bits...
    e nunca tive problema com o código.

    Porém estou atualizando parte das máquinas para o office 2013 64 bits em windows 10, algumas máquina permanecerão com o windos 7 32 ou 64 bits com o office 2007 32 bits instalado (por questão de custo).
    o fato é que eu tentei resolver as "public declare" como na página da microsoft / site avelino / fórum... e nada consegui ainda.

    agradeço quem puder me ajudar.

    Código:
    Private Sub AbreSis()
    #If VBA6 Then
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    #ElseIf VBA7 Then
        #If Win64 Then
        ' O erro acontece aqui, pois ele não reconhece o PtrSafe no 2007 32 bits
    Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr

        #Else
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
        #End If

    #Else
    MsgBox "Não foi possível verificar a versão do seu computador. Verifique com o departamento de informática.", vbCritical, "LOCALIZAR VERSÃO"
    #End If

    End Sub
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  JPaulo em Qua 26 Ago 2015, 16:38

    Ola;

    Isso é uma API do windows e você está a inseri-la num Sub "Private Sub AbreSis()", penso que não resultará.
    A API tem de ser declarada no inicio do modulo.

    Se fizer o teste somente assim, não funciona ?????

    Código:
    #If VBA7 Then
    '64 bits
    Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                    (ByVal hwnd As LongPtr, ByVal lpOperation As String, _
                     ByVal lpFile As String, ByVal lpParameters As String, _
                     ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
    #Else
    '32 bits
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                    (ByVal hwnd As Long, ByVal lpOperation As String, _
                     ByVal lpFile As String, ByVal lpParameters As String, _
                     ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #End If


    .................................................................................
    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.]

    ton0612
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 273
    Registrado : 30/03/2011

    Re: [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  ton0612 em Qua 26 Ago 2015, 17:24

    Boa tarde.
    Obrigado pelo retorno...
    ainda não funciona, esqueci de mencionar que ja havia feito inicialmente desta forma, conforme manda o manual da microsoft...

    fiquei pensando se não falta alguma referencia....mas não sei qual é.

    Vale lembrar que o SP instalado é 3.

    segue print -> [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  JPaulo em Qua 26 Ago 2015, 19:13

    Olá

    No 2007 32bits, vai dar sempre erro no módulo, não se assuste que é mesmo assim.
    Vai funcionar sem problema.

    Tem de testar assim mesmo nas duas máquinas.



    .................................................................................
    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.]

    ton0612
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 273
    Registrado : 30/03/2011

    Re: [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  ton0612 em Qua 26 Ago 2015, 19:39

    Boa tarde.
    Deu certo mesmo, mesmo com o "erro no módulo"....
    ou seja faltou testar, mas além disso não estava dando certo pq eu estava colocando a extensão errada: estava tentando abrir um accdb e coloquei como mdb.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  JPaulo em Qui 27 Ago 2015, 09:38

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    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.]

    ton0612
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 273
    Registrado : 30/03/2011

    Re: [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits

    Mensagem  ton0612 em Qui 27 Ago 2015, 17:48

    Boa tarde.
    Sabe o que achei estranho....
    o código funciona bem no 32 bits indiferente da ordem das linhas, mas no 64 (VBA7) já não. exemplo:
    Este Funciona nos dois sistemas...
    Código:

    #If VBA7 Then
    '64 bits
    Declare PtrSafe Function xxxxxxx
    #Else
    '32 bits
    Declare Function xxxxxxxx
    #End If

    Já este Funciona apenas no sistema 32bits
    Código:

    #If VBA6 Then
    '32 bits
    Declare Function xxxxxxxx
    #Else
    '64 bits
    Declare PtrSafe Function xxxxxxx
    #End If

    é normal?

      Data/hora atual: Dom 22 Out 2017, 21:49