none
Visual Studio 15.8 e Office 365 RRS feed

  • Pergunta

  • Saudações

    Uso o Visual Studio 2017 vs. 15.8 e até 20 de Outubro utilizava o Office 2013 Professional Plus.

    Tenho alguns programas em VB que acedem a bases de dados do Access e que funcionavam perfeitamente.

    Fui convencido a mudar para o Office 365 e assim fiz instalando o Office 365 casa que está em teste até 20 de Novembro. Mas, assim que desinstalei o Office 2013, as aplicações que acediam a bases de dados do Access deixaram de funcionar com o seguinte erro:

    System.Runtime.InteropServices.COMException: Falha ao obter class factory de COM do componente com CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} devido ao seguinte erro: 80040154 Classe não registada (Excepção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) referindo-se a Microsoft.Office.interop.access.dao.dll.

    Posto o problema na Developer Community, foi sugerido estar a questão resolvida numa versão a lançar e que poderia ser testado com a versão Preview do Visual Studio.

    NÃO funcionou!

    Uma nova resposta decidia que era problema do Office e não do Visual Studio (?).

    No suporte ao Office sugeriram colocar a pergunta no MSDN.

    Entretanto descobri que mantendo o Office 365 e instalando o Access 2013 o erro desaparece, mas isto não é uma solução.

    Já que até 20 de Novembro devo decidir de vez e não consigo nenhuma resposta faço pois a última tentativa.

    Falta algo no Office 365 ou este não é compatível com o Visual Studio no que diz respeito a bases de dados do Access?

    Devo cancelar a subscrição do Office 365 e continuar com o Office 2013?

    Existe uma outra solução?

    A que estou a usar não é propriamente solução e virá a dar outros problemas.

    Agradeço antecipadamente uma resposta.

    sexta-feira, 2 de novembro de 2018 23:20

Respostas

  • Carlos Zagalo,

        Que bom que resolveu.

        Então NÃO é possível registrar a DLL "Microsoft.Office.Interop.Access.Dao.dll" na mão... okay.

        O DAO é mais antigo que o ADO. Se você usar o ADO pode acessar arquivos "ACCDB".

        Essa de usar a opção "/quiet" no Access Database Engine 2016 eu não sabia.

    []'s,
    Fabio I.
    • Marcado como Resposta CarlosZagalo segunda-feira, 5 de novembro de 2018 18:58
    domingo, 4 de novembro de 2018 10:40

Todas as Respostas

  • CarlosZagalo,

       Você usa uma antiga library "DAO"?
       "Microsoft.Office.interop.access.dao.dll"

       Já tentou registrar essa classe manualmente?

    ===================================

    How To Register and Unregister Windows DLL Files with Regsrv32 Command

    For 32 bit Windows

      %systemroot%\System32\regsvr32.exe

    For 64 bit Windows

      %systemroot%\SysWoW64\regsvr32.exe

    https://www.poftut.com/register-and-unregister-windows-dll-files-with-regsrv32-command/

    ===================================

       Pesquisando + ...

    ===================================

    Microsoft.Office.Interop.Access.Application 64 bit

    1. In Visual Studio I added a reference (using browse) to:
        C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll
        (Note that there was already a "DAO" entry in the references that had appeared automatically when I referenced Access.

        It appears this was replaced or registered in some way.  There was no message about already having a reference with the same name.)

    2. Under properties for this reference set "Copy Local" to true.

    3. When placing the .dll file for my application I placed the dao360.dll in the same folder as my dll (as well as various other Interop dlls that seem to need to be copied as well.

    https://social.msdn.microsoft.com/Forums/en-US/697e4421-4ada-4e1a-9b2d-8dd25ea7b391/microsoftofficeinteropaccessapplication-64-bit?forum=netfx64bit

    ===================================

    Access automation does not work from 64 bit .Net application

    https://blogs.msdn.microsoft.com/vsod/2009/03/03/access-automation-does-not-work-from-64-bit-net-application/

    ===================================

    []'s,
    Fabio I.

    • Editado Fabio I sábado, 3 de novembro de 2018 18:16
    sábado, 3 de novembro de 2018 18:14
  • Hello Fabio I.

    I think your indications have solved my problem.

    First point

    The DLL "Microsoft.Office.Interop.Access.Dao.dll" produced the following error when attempting to register - module... was loaded but the Dllregister Server entry point was not found.

    Second point

    With DAO360.DLL I could only access MDB files from Access. It was necessary to convert all ACCDB files to MDB.

    Third and last point

    A few days ago, I tried to install the Microsoft Access Database Engine 2016 without success.

    The 32-bit version (I have Office 32-bit) ended saying that the version of Office was 64-bit.

    And the 64-bit version also ended now saying that the Office version was 32-bits.

    Confused?

    But after some research encouraged by your comments, I found that running the Setup program with the /quiet option worked.

    Installation done I removed Access 2013 and surprise!

    Everything is working without any alteration.

     So, I think my problem is solved and I appreciate your information.

     Carlos Zagalo

     



    domingo, 4 de novembro de 2018 00:09
  • Carlos Zagalo,

        Que bom que resolveu.

        Então NÃO é possível registrar a DLL "Microsoft.Office.Interop.Access.Dao.dll" na mão... okay.

        O DAO é mais antigo que o ADO. Se você usar o ADO pode acessar arquivos "ACCDB".

        Essa de usar a opção "/quiet" no Access Database Engine 2016 eu não sabia.

    []'s,
    Fabio I.
    • Marcado como Resposta CarlosZagalo segunda-feira, 5 de novembro de 2018 18:58
    domingo, 4 de novembro de 2018 10:40
  • Olá Fabio I

    Com efeito, parece que o meu problema está resolvido.

    De acordo com indicações da Microsoft o Access Database Engine 2016 tem de ser executado com a opção "/quiet" ou não instala.

    O registo manual da DLL Microsoft.Office.Interop.Access.Dao.Dll falha porque julgo faltar um ficheiro que é instalado com o Office 2013. Mas isso já não é importante.

    Já que a instalação do Access Database Engine 2016 me permite aceder a ficheiros MDB e ACCDB vou manter tudo como está embora saiba que ADO é mais recente e mais eficaz que DAO.

    Uma vez mais, obrigado pelas dicas que me orientaram no caminho certo.

    Carlos Zagalo

    segunda-feira, 5 de novembro de 2018 18:54