MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

2 participantes

    Importar txt sem delimitador

    tiagofeitosa
    tiagofeitosa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 31/01/2013

    Importar txt sem delimitador Empty Importar txt sem delimitador

    Mensagem  tiagofeitosa 15/2/2013, 20:37

    Amigos,

    Boa noite!

    Eis me aqui mais uma vez na luta para desenvolver um software eficiente!

    Seguinte:
    Tenho um aquivo txt gerado pelo banco onde emito boletos, quero importar esse arquivo para uma tabela especifica, o problema é que esse arquivo não tem "delimitador".
    O meu cliente vai baixar esse arquivo direto do site do banco, e quero que o código de importação busque o arquivo no diretório independente do nome, pois não quero que o cliente tenha que renomear o arquivo.

    Minha ideia é a seguinte:
    Importar o arquivo, e depois disso deletar o arquivo original.

    Estou anexando o arquivo que quero importar, será que alguem consegue me ajudar? Não tenho a menor ideia de como começar.

    Muito Obrigado mestres!
    Anexos
    Importar txt sem delimitador AttachmentC130206A.TXT
    Você não tem permissão para fazer download dos arquivos anexados.
    (42 Kb) Baixado 39 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8056
    Registrado : 05/11/2009

    Importar txt sem delimitador Empty Re: Importar txt sem delimitador

    Mensagem  Alexandre Neves 16/2/2013, 19:07

    Boa noite, tiago

    veja este


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    tiagofeitosa
    tiagofeitosa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 49
    Registrado : 31/01/2013

    Importar txt sem delimitador Empty Re: Importar txt sem delimitador

    Mensagem  tiagofeitosa 19/2/2013, 00:19

    Alexandre!!

    Obrigado pela dica do Post, confesso que ja tinha visto e me perdi todo aqui.
    Baixei o Exemplo do mestre JPaulo, mas não funcionou aqui não.

    E da um erro que não tenho ideia de como corrigir, a unica coisa que identifiquei aqui é que o erro que dá é resposta desse código.

    SQLError:
    MsgBox "Erro na execusão do SQL '" & _
    InstrucaoSQL & "'"
    Close fnum
    DB.Close
    Exit Sub

    O Código é esse, ja com a adaptaçào para p arquivo que quero buscar...

    Desculpe meu amadorismo, mas não ta rolando...


    Public Sub ImportaSemDelimitadores()
    'By JPaulo ® Maximo Access
    Dim Delimitador As String
    Dim DB As Database
    Dim fnum As Integer
    Dim LinhaDoTexto, LinhaDoTextoTemp As String
    Dim InstrucaoSQL As String
    Dim Posicao As Integer
    Dim QtdDeRegistros As Long
    Dim ArquivoTexto As String
    Dim strBanco As Databases
    Dim strTabela As String

    ArquivoTexto = "C:\Users\Thiago\Drive Google\Google Drive\Sistema\Arquivos Banco\Retorno\CN06023A.ret" 'caminho do arq de texto
    strTabela = "temp" 'nome da tabela no banco

    Delimitador = " " 'defina aqui qual o delimitador

    If Delimitador = "" Then Delimitador = " "
    If Delimitador = "" Then Delimitador = vbTab

    fnum = FreeFile
    On Error GoTo NoTextFile
    Open ArquivoTexto For Input As fnum

    On Error GoTo NoDatabase
    Set DB = CurrentDb
    On Error GoTo 0

    Do While Not EOF(fnum)
    Line Input #fnum, LinhaDoTexto

    'se existe texto, segue o código
    If Len(LinhaDoTexto) > 0 Then

    'encontrar a linha com o inicio a começar por 4530
    If Left(LinhaDoTexto, 4) Like "4530" Then

    'aqui deleta onde o texto começar por 4530*
    LinhaDoTextoTemp = Mid(LinhaDoTexto, 11, 255)
    LinhaDoTexto = LinhaDoTextoTemp
    End If

    'se existir uma linha em branco, passa para a proxima
    If Len(LinhaDoTexto) < 0 Then
    LinhaDoTexto = LinhaDoTexto + 1
    End If

    'percorre todo o texto do txt e adiciona à tabela
    InstrucaoSQL = "INSERT INTO " & _
    strTabela & " VALUES ("
    Do While Len(LinhaDoTexto) > 0
    Posicao = InStr(LinhaDoTexto, Delimitador)
    If Posicao = 0 Then
    InstrucaoSQL = InstrucaoSQL & _
    "'" & LinhaDoTexto & "', "
    LinhaDoTexto = ""
    Else
    InstrucaoSQL = InstrucaoSQL & _
    "'" & Left$(LinhaDoTexto, Posicao - 1) & _
    "', "
    LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
    End If
    Loop

    InstrucaoSQL = Left$(InstrucaoSQL, Len(InstrucaoSQL) - 2) & ")"

    On Error GoTo SQLError
    DB.Execute InstrucaoSQL
    On Error GoTo 0
    QtdDeRegistros = QtdDeRegistros + 1

    End If

    Loop

    Close fnum
    DB.Close
    MsgBox "Inseridas " & Format$(QtdDeRegistros) & " Linhas"
    Exit Sub

    NoTextFile:
    MsgBox "Erro na abertura do Arquivo de Texto."
    Exit Sub

    NoDatabase:
    MsgBox "Erro na abertura do Banco."
    Close fnum
    Exit Sub

    SQLError:
    MsgBox "Erro na execusão do SQL '" & _
    InstrucaoSQL & "'"
    Close fnum
    DB.Close
    Exit Sub
    End Sub


      Data/hora atual: 22/1/2022, 17:48