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


4 participantes

    Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    fernandamacan
    fernandamacan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 5
    Registrado : 21/02/2019

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  fernandamacan 11/8/2021, 13:00

    Bom dia Pessoal,

    Utilizo o componente da Flexdocs NFSe_Util para emissão de NFSe da Prefeitura de São Paulo.
    Para MS Access 32 bits está funcionando corretamente, mas quando o MS Access é de 64 bits simplesmente o componente não funciona.
    A mensagem de erro é "Classe não registrada", justamente ao acessar o componente.
    Abri chamado no suporte da Flexdocs, eles insistem no erro no registro do dll no windows, mas está tudo registrado corretamente, inclusive já provei isso para eles.
    Acho que deve ter algum jeitinho diferente para registrar ou declarar que eu preciso saber.
    Alguém já teve a mesma dificuldade com 64 bits?

    Exemplo:

    Function VersaoNFSe_Util()
    On Error GoTo Err_Proc

    Dim objNFSeUtil As Object
    Set objNFSeUtil = CreateObject("NFSe_util.util")

    MsgBox "A versão da DLL é: " + objNFSeUtil.versao, vbInformation, "Resultado"

    Set objNFSeUtil = Nothing

    Exit_Err_Proc:
       Exit Function
    Err_Proc:
       MsgBox Err.Description
       Resume Exit_Err_Proc
    End Function

    Desde já agradeço a atenção.

    Fernanda Macan
    ArteMicro Sistemas
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3217
    Registrado : 13/12/2016

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Re: Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  Alexandre Fim 11/8/2021, 13:34

    Bom dia Fernanda,

    Por gentileza, poste aqui o código da sua classe ou, se possível, mande uma cópia do banco, somente os objetos envolvidos no problema.

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Setinf11
    Sistemas e Tecnologia Ltda
    fernandamacan
    fernandamacan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 5
    Registrado : 21/02/2019

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Re: Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  fernandamacan 11/8/2021, 15:18

    Caro Alexandre,

    O código é o que eu postei no exemplo, segue novamente abaixo.
    O erro acontece na linha que está em negrito:
    "Set objNFSeUtil = CreateObject("NFSe_util.util")"
    A última solicitação do suporte da Flexdocs foi:
    Utilizar early binding para ver se funciona:
    docs.microsoft.com/pt-br/previous-versions/office/troubleshoot/office-developer/binding-type-available-to-automation-clients
    Teria que alterar "as Object" por "Create Object", mas não sei fazer isso.
    Lembrando que a função abaixo funciona perfeitamente no MS Access 32 bits, o problema é no 64 bits que não está reconhecendo a dll registrada no windows, porém garanto que está registrada corretamente, o próprio suporte da flexdocs admitiu que está correto.

    Function VersaoNFSe_Util()
    On Error GoTo Err_Proc

    Dim objNFSeUtil As Object
    Set objNFSeUtil = CreateObject("NFSe_util.util")

    MsgBox "A versão da DLL é: " + objNFSeUtil.versao, vbInformation, "Resultado"

    Set objNFSeUtil = Nothing

    Exit_Err_Proc:
      Exit Function
    Err_Proc:
      MsgBox Err.Description
      Resume Exit_Err_Proc
    End Function

    Desde já agradeço sua atenção.

    Fernanda Macan
    ArteMicro Sistemas
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3217
    Registrado : 13/12/2016

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Re: Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  Alexandre Fim 11/8/2021, 15:33

    Fernanda,

    Antes do erro de Classe não Registrada, verifique a compatibilidade de blibliotecas 32 e 64, nas declarações de API, que na plataforma 64, deve-se usar o novo atributo PtrSafe, conforme exemplo abaixo:

    Código:


    #if Win64 then
       Declare PtrSafe Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong
    #else
       Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long
    #end if
    #if VBA7 then
       Declare PtrSafe Sub MessageBeep Lib "User32" (ByVal N AS Long)
    #else
       Declare Sub MessageBeep Lib "User32" (ByVal N AS Long)
    #end if


    Após realizar as alterrações, vá no menu "Depurar>> Compilar Nome_do Sistema" e verifique se gera algum erro.

    Artigo Microsoft:
    docs.microsoft.com/pt-br/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

    Espero ter ajduado.

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    vinicios
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 07/11/2012

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  vinicios 16/11/2021, 14:26

    Bom dia Fernanda, consegui evoluir neste problema do win 64?
    fernandamacan
    fernandamacan
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 5
    Registrado : 21/02/2019

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Re: Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  fernandamacan 16/11/2021, 23:16

    Boa noite Vinicios,

    Eu fiz como Alexandre orientou, conforme abaixo, mas mesmo assim não resolveu.
    Resolvi criar um robô que envia os RPS´s, um por lote, direto do servidor que é MS Access 32 bits, assim os usuários não precisam mais enviar das estações com MS Access 64 bits.
    Agradeço seu interesse e se vc tiver alguma solução para "Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada" e quiser trocar informações estarei à disposição.

    Código:
    #If VBA7 Then
        Declare PtrSafe Function Util Lib "NFSe_Util.dll" () As Long
        Declare PtrSafe Function EnviaLoteRPS Lib "NFSe_Util.dll" () As Long
        Declare PtrSafe Function GeraLoteRPSSP Lib "NFSe_Util.dll" () As Long
        Declare PtrSafe Function ConsultaLoteRPS Lib "NFSe_Util.dll" () As Long
    #Else
        Declare Function Util Lib "NFSe_Util.dll" () As Long
        Declare Function EnviaLoteRPS Lib "NFSe_Util.dll" () As Long
        Declare Function GeraLoteRPSSP Lib "NFSe_Util.dll" () As Long
        Declare Function ConsultaLoteRPS Lib "NFSe_Util.dll" () As Long
    #End If
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Re: Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  DamascenoJr. 17/11/2021, 01:07

    Fernanda, estando resolvido, não esqueça de marcar o tópico com resolvido. Essa ação é necessária para que os demais membros saibam que a dúvida colocada teve alguma solução.

    Aguardamos...


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

    Conteúdo patrocinado


    32 bits - Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada Empty Re: Flexdocs NFSE_Util X Access 64 bits - Erro Classe não registrada

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 11:41