MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

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, 10:05

    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 : 3412
    Registrado : 04/04/2010

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

    Mensagem  Avelino Sampaio em Qua 22 Out 2014, 10:52

    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, 15:01

    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 : 3412
    Registrado : 04/04/2010

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

    Mensagem  Avelino Sampaio em Qui 23 Out 2014, 15:40

    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, 15:57

    Valeu Avelino, sensacional ! Obrigado!

      Data/hora atual: Qui 23 Nov 2017, 23:36