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


2 participantes

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

    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  ton0612 26/8/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
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 26/8/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new Instruções SQL como utilizar...
    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  ton0612 26/8/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 -> [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Mre4pv
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 26/8/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new Instruções SQL como utilizar...
    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  ton0612 26/8/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.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 27/8/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Código para office 2007 32 bits e 2013 32 e 64 bits Folder_announce_new Instruções SQL como utilizar...
    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  ton0612 27/8/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?

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 01:01