none
erro: 80040154 Classe não registrada (Exceção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) RRS feed

  • Pergunta

  • Caros, Já pesquisei e não pude resolver meu problema.
    Já fiz a mudança do meu pool no IIS para 32bits, meu programa está compilando em x86 (meu windows é 64bits), Já tentei procurar o Interop.Excel no serviços de componentes.

    Acontece que o programa estava bem, sem erros. Daí eu troquei toda a estrutura de ADODB para OleDb. Sendo que quando eu terminei de atualizar e tentei criar um relatório no Excel, o programa gera este erro 80040154 de classe não registrada.

    A versão do Interop.Excel é o 12.0 e já tentei fazer registro no RegSvr32 também.
    As diferenças é que na máquina de casa (que foi onde eu atualizei o programa) o Office é 2010 e o SQL express é o 2012 e aqui no escritório o Office é 2007 e o SQL express 2008 R2. Tem alguma coisa a ver?


    segunda-feira, 16 de junho de 2014 16:54

Respostas

  • Senhores,
    Resolvi meu problema.

    Antes, eu usava o código abaixo para abrir o WorkBook:

    Private Function abreWorkBook(ByVal param As Microsoft.Office.Interop.Excel.Application, nomeArquivo As StringAsMicrosoft.Office.Interop.Excel.Workbook
        IO.File.Copy(Application.StartupPath & "\matriz gerenciador 2007.xlsx", nomeArquivo, True)
        abreWorkBook = New Microsoft.Office.Interop.Excel.Workbook 'ERA AQUI ONDE ELE DAVA O ERRO


    O que eu fiz foi colocar o "AbreWorkbook" entre o Try:
    Private Function abreWorkBook(ByVal param As Microsoft.Office.Interop.Excel.Application, nomeArquivo As StringAsMicrosoft.Office.Interop.Excel.Workbook
        IO.File.Copy(Application.StartupPath & "\matriz gerenciador 2007.xlsx", nomeArquivo, True)

        Try
            abreWorkBook = New Microsoft.Office.Interop.Excel.Workbook
        Catch ex As Exception

        End Try


    De algum modo, o erro aparecia ao criar uma nova instância do "Microsoft.Office.Interop.Excel.Workbook"
    Quando eu tirei o "New", colocando-o entre o "Try", o Excel abriu e gerou o relatório.

    Obrigado a todos 
    • Marcado como Resposta Oliveira Leal terça-feira, 17 de junho de 2014 13:54
    terça-feira, 17 de junho de 2014 13:54