MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Erro ao executar função no RunTime MsAccess 2013

    Compartilhe

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    [Resolvido]Erro ao executar função no RunTime MsAccess 2013

    Mensagem  M2013 em Qua 22 Out 2014, 8:05 am

    Prezados,

    Tenho um aplicativo que finalizei e que executa 100% sem erros na versão full do MsAccess 2010.
    Ao executá-lo no RunTime MsAccess 2013 , até o momento, recebi um erro ao executar
    "Set objaccess = CreateObject("Access.Application")" , o erro é " ocorreu erro {na função tal} o componente Activex não pode criar o objeto".

    Resumindo o pedaço da função:

    Dim NomeTabela, caminho
    caminho = DLookup("[Diretorio_instalação]", "tb_Configurações", "[Diretorio_instalação]")
    NomeTabela = "tbrealizadoTemp"

    Set objaccess = CreateObject("Access.Application")
    objaccess.NewCurrentDatabase caminho & "tbrealizadoTemp.accdb"
    objaccess.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, NomeTabela, Forms![Frm_Importação]![Localização], True
    objaccess.Quit

    Bom as variáveis que indico caminho estão 'ok' , e o que acontece é a criação de um accdb e posteriormente a transferência dos dados de uma planilha (string no form frm_Importação) para esse banco. Na versão full tudo é executado perfeitamente.

    Pesquisando na microsoft cheguei ao seguinte:

    [Você precisa estar registrado e conectado para ver este link.]

    ("A chamada CreateObject não é compatível com o ambiente de tempo de execução, porque o tempo de execução do Access requer um arquivo a ser fornecido na linha de comando.")

    Há alguma alternativa para isso ? Já pesquisei bastante mas não encontrei.

    agradeço antecipadamente a atenção de todos
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]Erro ao executar função no RunTime MsAccess 2013

    Mensagem  Avelino Sampaio em Qua 22 Out 2014, 8:52 am

    Olá!

    Talvez tenha que utilizar o Shell() em conjunto com getObject(). Teste no versão full usando a extensão ACCDR que vc estará simulando a execução runtime

    Aguardamos

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    Erro ao executar função no RunTime MsAccess 2013

    Mensagem  M2013 em Qui 23 Out 2014, 1:01 pm

    Avelino, obrigado pela resposta.

    Na verdade "Shell" etc.. colocada pela microsoft não se adapta ao que necessito. Contornei com uma gambiarra em "CreateDatabase" em vez do "CreateObject" e funcionou (criei uma tabela padrão(tborcadoTemp@) :

    ................................................................................................................................
       Dim ws As Workspace
       Dim db As Database
       Dim NomeTabela, ArquivoExiste, caminho
       
    Set ws = DBEngine.Workspaces(0)
    caminho = DLookup("[Diretorio_instalação]", "tb_Configurações", "[Diretorio_instalação]")

    Set db = ws.CreateDatabase(caminho & "tborcadoTemp.accdb", dbLangGeneral)

    DoCmd.TransferDatabase acExport, "Microsoft Access", caminho & "tborcadoTemp.accdb", acTable, "tborcadoTemp@", "tborcadoTemp", True
     
    db.Close
    Set db = Nothing

    DoCmd.TransferDatabase acLink, "Microsoft Access", caminho & "tborcadoTemp.accdb", acTable, "tborcadoTemp", "tborcadoTemp", False

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tborcadoTemp", Forms![Frm_Importação]![Localização], True

    .....................................................
    Mas me deparo com o cód. seguinte que tb uso "CreateObject" , para alterar o tipo de campos da tabela anexada. Daí tentei "ALTER TABLE" e executar mas não deu certo (não é possivel alterar tb anexadas!)
    cód com "Create"

    Dim MySQL_0, caminho As String
    Dim appAccess As Access.Application

    NomeTabela = "tborcadoTemp.accdb"
    caminho = DLookup("[Diretorio_instalação]", "tb_Configurações", "[Diretorio_instalação]")

    Set appAccess = CreateObject("Access.Application")
    appAccess.OpenCurrentDatabase strBancoExterno

    MySQL_0 = "ALTER TABLE tborcadoTemp ADD COLUMN Data_atu DATE;"
    appAccess.DoCmd.RunSQL MySQL_0
    Set appAccess = Nothing

    >>>>>> tentei
    Dim str, caminho As String
    caminho = DLookup("[Diretorio_instalação]", "tb_Configurações", "[Diretorio_instalação]")

    str = "ALTER TABLE tborcadoTemp ADD COLUMN Data_atu DATE;" <<<<<<<<<<
    CurrentProject.Connection.Execute str

    obrigado
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]Erro ao executar função no RunTime MsAccess 2013

    Mensagem  Avelino Sampaio em Qui 23 Out 2014, 1:40 pm

    Veja se as dicas 23 e 24 ajudam:

    [Você precisa estar registrado e conectado para ver este link.]



    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    Erro ao executar função no RunTime MsAccess 2013

    Mensagem  M2013 em Qui 23 Out 2014, 1:57 pm

    Valeu Avelino, sensacional ! Obrigado!

      Data/hora atual: Sex 26 Maio 2017, 12:43 pm