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]Exportação para txt

    Compartilhe

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    [Resolvido]Exportação para txt

    Mensagem  Uilson Brasil em Seg 30 Dez 2013, 23:03

    Pessoal,

    Estou tentando exportar uma tabela para .txt e está havendo um erro:

    "O separador de campo da especificação do arquivo texto coincide com o separador decimal ou o delimitador de texto"

    Já quebrei a cabeça aqui e não consigo resolver.

    Código:
    DoCmd.TransferText acExportDelim, "", "CargaMGV5", (CurrentProject.Path & "\Enviados\TXITENS.TXT"), False


    Alguem tem alguma idéia do está ocorrendo???


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    Mrsilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 03/11/2011

    Re: [Resolvido]Exportação para txt

    Mensagem  Mrsilva em Ter 31 Dez 2013, 03:47

    Olá.

    Você já deve ter tentado mudar o limitador da sua especificação!

    O erro ocorre na importação do arquivo que você gera?

    Caso não for e se for possível você pode mudar sua especificação para coluna fixa

    ou gerar seu arquivo através do VBA  vejá esse exemplo (função) é mais rapido que através de especificações

    Código:
    Public Function fncCriaPlanoContas(strCaminho, SQL As String) as long

        Dim bd As DAO.Database
        Dim rs As DAO.Recordset
        Dim arquivo As String
        Dim strLinha As String
        Dim r as long
        
            
        On Error Resume Next
        
      
       arquivo = strCaminho & "\"  & "Plano_de_Contas.txt"  'Caminho onde será gerado o arquivo

        Open arquivo For Output As #1
        Set bd = CurrentDb()
        Set rs = CurrentDb.OpenRecordset(SQL)
        rs.MoveFirst
        If rs.RecordCount > 0 Then
            rs.MoveFirst
            Do Until rs.EOF
            
            strLinha = rs!Conta & "       " & rs!Descricao 'está com espaço de 7 caractere entre conta e descrição
            
            Print #1, strLinha  'Grava a linha no arquivo texto

            r = Nz(r, 0) + 1  'Faz a contagem de registro gerados
              
           rs.MoveNext
                
            Loop
        End If
        Close #1
        rs.Close
        bd.Close

    fncCriaPlanoContas = r
        
    End Function

      

    Dessa forma é possível gerar o arquivo da forma que quiser, basta montar as informações na variável strLinha, ou seja colar virgula ou outro caractere entre os dados.

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: [Resolvido]Exportação para txt

    Mensagem  Uilson Brasil em Ter 31 Dez 2013, 13:31

    MrSilva,

    Valeu mesmo pela dica. Porém já havia resolvido através de uma dica que encontrei do Mestre JPaulo.

    O código ficou assim:

    Código:
    Private Sub btExpBal_Click()
    'On Error Resume Next
    Playsound (CurrentProject.Path & "\Objetos\Sound\Menu")

    'limpa diretório
    Kill (CurrentProject.Path & "\Enviados\*.*")

    'oculta avisos de segurança do access
    DoCmd.SetWarnings False

    'deleta tabela "CargaMGV5"
    DoCmd.DeleteObject acTable, "CargaMGV5"

    'Recria tabela "CargaMGV5" com os dados atualizados
    DoCmd.OpenQuery "CargaItensMGV5Export", acViewNormal
    DoCmd.OpenQuery "CargaItensMGV5Table", acViewNormal

    'pausa 1 segundo
    Pause 1

    'fecha as consultas
    DoCmd.Close acQuery, "CargaItensMGV5Table"
    DoCmd.Close acQuery, "CargaItensMGV5Export"

    'retorna avisos de segurança do access
    DoCmd.SetWarnings True

    'exporta arquivo de texto
    DoCmd.TransferText acExportFixed, ";", "CargaMGV5", (CurrentProject.Path & "\Enviados\TXITENS.TXT"), False

    'chama o módulo gerencial de venda da Toledo "MGV5"
    'Shell "C:\Program Files (x86)\Toledo\MGV5\MGV5.EXE", vbMaximizedFocus

    End Sub


    Aproveite e veja como funciona na prática: [Você precisa estar registrado e conectado para ver este link.]


    Abraços, e Feliz 2014.


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    anderfranca
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 25/04/2016

    Eu consegui de outra foram

    Mensagem  anderfranca em Qui 15 Set 2016, 23:51

    Eu usei no Access 2003 este código VBA:

    Private Sub btExportar_Click()
    Kill ("S:\ARQUIVOARO\*.*")
    DoCmd.TransferText acExportDelim, "EspecExportAro", "Tbl_ExportAro", "S:\ARQUIVOARO\AROS.csv", True
    MsgBox "Arquivo transferido com sucesso para a pasta S:\ARQUIVIARO\AROS.csv", vbInformation, "Exportação Concluída!"
    End Sub

    Onde:
    "EspecExportAro" é o nome da especificação para o conjunto de opções que determinam como um arquivo texto é importado, exportado ou vinculado.

    Para você especificar este arquivo faça como se segue:

    - Na janela banco de dados selecione a tabela a ser exportada.
    - Clique com o botão direito e vá em Exportar...
    - Na janela Salvar como digite um nome qualquer tipo: Aro.txt e selecione o tipo de arquivo para txt... e clique no botão exportar
    - Na próxima tela terá um botão abaixo "Avançado..." clique nele
    - Aparecerá uma tela com as especificações... então você clique no botão "Salvar como..." Esse botão salvará as especificações que vc configurar.
    - Aparecerá uma tela pra colocar o nome da especificação no meu programa eu digitei o nome EspecExportAro e clicar em OK
    Pronto... seu Arquivo interno de Especificação do Arquivo estará criado... se quiser pode fechar todas as telas agora.
    Agora é só colocar no Código VBA e vai funcionar de boa.

    Abraço!
    Sucesso!

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

      Data/hora atual: Sab 03 Dez 2016, 04:32