none
Não consigo importar arquivo txt com o access fechado usando o excel vba. (erro em tempo de execução '2046') RRS feed

  • Pergunta

  • Olá Pessoal, 

    Gostaria de uma ajuda de vcs... estou usando no excel um form e ao tentar importar um arquivo txt para o Access do excel aparece esse erro "erro em tempo de execução '2046': o comando ou a ação 'Transferir Texto não está disponível agora." ..... mas quando eu deixo o access aberto ele consegue fazer essa importação, mas gostaria que ele fizesse isso com o access fechado...

    DoCmd.TransferText acImportDelim, "Tab_especif", "Tab1", caminho, False

    Não sei se fui muito claro, mas desde já muito obrigado pela a atenção.

    Silvio.
    segunda-feira, 10 de setembro de 2012 16:48

Respostas

  • Sem olhar para todo o código utilizado, não te posso dar grande ajuda.

    Posso sim é explicar como se processam as ligações ao Access.

    1 - Para consultar, editar e introduzir dados nas tabelas, directamente  ou através de consultas, usa-se o DAO, ADO ou ODBC. Usando o SQL podemos alterar as tabelas e consultas. O DAO também permite um accesso mais directo à estrutura da base de dados.

    2 - Para editar o Projecto do Access (formulários, relatórios e modulos) ou usar procedimentos proprios do Access, temos de usar a aplicação Access. Para isso e em VBA utilizamos uma referência ao Access (Access.Application). Penso que seja essa parte que esteja a faltar.

    Deixo um exemplo básico para essa instrução:

        Dim acc As Object
        Set acc = CreateObject("Access.Application")
        acc.OpenCurrentDatabase "C:\...\Database.mdb" 'Substituir pelo teu MDB ou ACCDB
        acc.DoCmd.TransferText acImportDelim, "Tab_especif", "Tab1", caminho, False
        acc.Quit  
    Nota que o Access abre mas fica invisivel até ser fechado. Para o tornar visivel basta colocar a propriedade acc.Visible=True


    segunda-feira, 10 de setembro de 2012 20:41

Todas as Respostas

  • Sem olhar para todo o código utilizado, não te posso dar grande ajuda.

    Posso sim é explicar como se processam as ligações ao Access.

    1 - Para consultar, editar e introduzir dados nas tabelas, directamente  ou através de consultas, usa-se o DAO, ADO ou ODBC. Usando o SQL podemos alterar as tabelas e consultas. O DAO também permite um accesso mais directo à estrutura da base de dados.

    2 - Para editar o Projecto do Access (formulários, relatórios e modulos) ou usar procedimentos proprios do Access, temos de usar a aplicação Access. Para isso e em VBA utilizamos uma referência ao Access (Access.Application). Penso que seja essa parte que esteja a faltar.

    Deixo um exemplo básico para essa instrução:

        Dim acc As Object
        Set acc = CreateObject("Access.Application")
        acc.OpenCurrentDatabase "C:\...\Database.mdb" 'Substituir pelo teu MDB ou ACCDB
        acc.DoCmd.TransferText acImportDelim, "Tab_especif", "Tab1", caminho, False
        acc.Quit  
    Nota que o Access abre mas fica invisivel até ser fechado. Para o tornar visivel basta colocar a propriedade acc.Visible=True


    segunda-feira, 10 de setembro de 2012 20:41
  • Nando Freitas!

    Não sei como te agradecer, é exatamente isso que eu estava precisando.

    Eu preciso fazer algo para encerrar este tópico e dar alguma pontuação para vc?

    Muito obrigado mesmo.

    DEUS te abençoe mano.

    Silvio

    terça-feira, 11 de setembro de 2012 15:14