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
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1000
    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
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1000
    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: Ter 17 Jan 2017, 17:10