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

    [Resolvido]importar arquivo em txt para o access

    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty importar arquivo em txt para o access

    Mensagem  valliclay 25/2/2012, 00:42

    Boa noite pessoal

    sou novo no forum e tambem no VBA do ACCESS, na empresa que trabalho usamos o access para auxiliar no controle da produção importando relatorios do sistema principal para uma pasta na rede e os arquivos estavam sendo salvos em excel, para importar para o access não tenho problema mas recentimente estamos recebendo os arquivos em txt que vem com 4 linha como se como um cabeçalho e depois a palavra order ex; abaixo loga apos apalavra order tem um mumero de um documento, no Access tenho um tabela chamada coois com tudos os campos abaixo( order material e assim por diante) preciso importar para esta tabela as linhas abaixo da linha tracejada depois da palavra order lembrando que o arquivo tem 18 mil linhas aproximadamente e dez colunas.

    os colegas do forum podem me ajudar.


    02/22/2012 Dynamic List Display 1
    -------------------------------------------------------------------------
    -------------------------------------------------------------------------
    |Order |Material |Order Type|Target qty|Conf. qty|Unit|System Status
    -------------------------------------------------------------------------
    |30005075|PIWG1330092|ZP01 | 1,000 | 0 |PC |TECO MSPT PRC CSER SETC
    |30005145|72827330001|ZP02 | 454 | 0 |PC |REL PRC GMPS MACM SETC
    |30005181|PIWG1330092|ZP01 | 2 | 0 |PC |REL MSPT PRC GMPS SETC
    |30005188|46196238L16|ZP01 | 7,600 | 0 |PC |REL MSPT PRC GMPS SETC |FW MB A6755




    Estou tentando adaptar o codigo do Jpaulo abaixo mas não estou conseguido pois como ja tenho a tabela cria e so preciso~das informaçoes da linha 6 em diante não consigo adaptar o codigo alguem pode me ajudar

    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:\teste.txt" 'caminho do arq de texto
    strTabela = "temp" 'nome da tabela no banco

    Delimitador = "|" 'defina aqui qual o delimitador que não quer importar

    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

    If Len(LinhaDoTexto) > 0 Then
    If Left(LinhaDoTexto, 4) Like "4530" Then
    LinhaDoTextoTemp = Mid(LinhaDoTexto, 11, 255)
    LinhaDoTexto = LinhaDoTextoTemp
    End If
    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


    Última edição por cla3200pc em 26/2/2012, 19:04, editado 1 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  Convidad 25/2/2012, 00:55


    Olá, bem vindo ao Fórum

    Pesquise por "importar txt" e semelhantes. Irá encontrar muito material aqui no fórum, como este:

    http://maximoaccess.forumeiros.com/t4862-importar-aquivo-txt-com-no-access?highlight=importar+txt





    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 25/2/2012, 00:59

    Obrigado pelo bem vindo e pela dica
    avatar
    Convidad
    Convidado


    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  Convidad 25/2/2012, 01:10



    Este tópico tem um vídeo sobre como pesquisar:

    http://maximoaccess.forumeiros.com/t3280-saiba-como-pesquisar-no-forum-usando-o-google

    Sucesso!
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 28/2/2012, 01:59

    02/22/2012 Dynamic List Display 1
    -------------------------------------------------------------------------
    -------------------------------------------------------------------------
    |Order |Material |Order Type|Target qty|Conf. qty|Unit|System Status
    -------------------------------------------------------------------------
    |30005075|PIWG1330092|ZP01 | 1,000 | 0 |PC |TECO MSPT PRC CSER SETC
    |30005145|72827330001|ZP02 | 454 | 0 |PC |REL PRC GMPS MACM SETC
    |30005181|PIWG1330092|ZP01 | 2 | 0 |PC |REL MSPT PRC GMPS SETC
    |30005188|46196238L16|ZP01 | 7,600 | 0 |PC |REL MSPT PRC GMPS SETC |FW MB A6755




    Estou tentando adaptar o codigo do Jpaulo abaixo mas não estou conseguido pois como ja tenho a tabela cria e so preciso~das informaçoes da linha 6 em diante não consigo adaptar o codigo alguem pode me ajudar

    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:\teste.txt" 'caminho do arq de texto
    strTabela = "temp" 'nome da tabela no banco

    Delimitador = "|" 'defina aqui qual o delimitador que não quer importar

    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

    If Len(LinhaDoTexto) > 0 Then
    If Left(LinhaDoTexto, 4) Like "4530" Then
    LinhaDoTextoTemp = Mid(LinhaDoTexto, 11, 255)
    LinhaDoTexto = LinhaDoTextoTemp
    End If
    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
    avatar
    Convidad
    Convidado


    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  Convidad 28/2/2012, 02:10


    Viu este tópico resolvido?

    http://maximoaccess.forumeiros.com/t6440-resolvidoimportar-txt-para-tabela
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 29/2/2012, 02:10

    obrigado mais uma vez vou tentar adaptar ok
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  chsestrem 29/2/2012, 12:23

    Bom dia,

    Se a estrutura de seu txt virá sempre neste formato, você pode
    usar uma matriz e importar o arquivo a partir da 6ª Linha

    Crie uma tabela com os campos do recordset que eu escrevi e teste a função


    Código:

    Option Compare Database

    Dim Linha As String
    Dim rs As DAO.Recordset
    Dim Matriz() As String
    Dim strsql As String

    Public Function Importa_TXT(caminho As String)

    F = FreeFile

    Set rs = CurrentDb.OpenRecordset("TblTempTxt")

    Open caminho For Input As #F

    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy2 ' Pula a 2ª linha
    Line Input #F, Dummy3 ' Pula a 3ª linha
    Line Input #F, Dummy4 ' Pula a 4ª linha
    Line Input #F, Dummy5 ' Pula a 5ª linha

    Do While Not EOF(F) ' Começa a importação a partir da 6ª linha

    Line Input #F, Linha  'lê uma linha do arquivo texto

    Matriz() = Split(Linha, "|") ' Usando o Pipe do txt como delimitador
    rs.AddNew
    rs!Order = Matriz(1) ' Se não tiver delimitador "|" no começo a matriz começaria de Zero - 0
    rs!Material = Matriz(2)
    rs!OrderType = Matriz(3)
    rs!Targetqty = Matriz(4)
    rs!Confqty = Matriz(5)
    rs!Unit = Matriz(6)
    rs!SystemStatus = Matriz(7)
    rs.Update
    Loop
    Close #F
    rs.Close

    End Function
    ' Para chamar a função direcione o caminho em uma variavel ou caminho especifico ex:
    ' call Importa_TXT("C:\Documents and Settings\Usuario\Meus documentos\teste_txt.txt")


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 2/3/2012, 02:46

    Boa noite

    norbs e chsestrem

    desde ja quero agradecer a vocês

    não respondi antes pois estamos na senana do fechamento na empresa

    norbs

    comecei a adaptar o codigo que você aindicou mas so vou terminar o final de semana e te mantenho informado sobre o resultado

    chsestrem

    vou testar o codigo que você me enviou tambem


    agradeço a todos pelo dedicação em ajudar


    obrigado e ate o final de semana
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 3/3/2012, 03:20

    BOA NOITE

    A TODOS

    ESTOU TENTANDO ADAPTAR O CODIGO ABAIXO PARA IMPORTAR O ARQUIVO TEXTO ABAIXO

    02/22/2012 Dynamic List Display 1
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------
    |Order |Material |Order Type|Target qty|Conf. qty|Unit|System Status |Material description |Act. start|Act.finish|
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------
    |30005075|PIWG1330092|ZP01 | 1,000 | 0 |PC |TECO MSPT PRC CSER SETC |LENOVOG470GRBRTXI32330M4G500R7RBR_MCKD | | |
    |30005145|72827330001|ZP02 | 454 | 0 |PC |REL PRC GMPS MACM SETC |FW MB A6321P NCL60 UMA _SKD | | |
    |30005181|PIWG1330092|ZP01 | 2 | 0 |PC |REL MSPT PRC GMPS SETC |LENOVOG470GRBRTXI32330M4G500R7RBR_MCKD | | |
    |30005188|46196238L16|ZP01 | 7,600 | 0 |PC |REL MSPT PRC GMPS SETC |FW MB A6755 PAWGC UMA 1G 10L | | |
    |30005189|455NI738L01|ZP01 | 7,600 | 0 |PC |REL PRC GMPS MACM SETC |PCBA PWR/B S6753 PIWG1 DIS | | |
    |30005190|455NKH38L01|ZP01 | 7,600 | 0 |PC |REL PRC GMPS MACM SETC |PCBA CARD RDR/B S6756 PAWGC 2IN1 | | |
    |30005195|4619A5BOL89|ZP01 | 7,400 | 0 |PC |REL MSPT PRC GMPS SETC |FW MB A6901 P5WE0 UMA DUAL W/HDMI N3G BR| | |
    |30005196|455NL1BOL01|ZP01 | 7,400 | 0 |PC |REL PRC GMPS MACM SETC |PCBA PWR/B S6902 P5WE0 | | |



    SEGUE O CODIGO

    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\DADOS\Desktop\ATUALIZAR\COOIS.txt" 'caminho do arq de texto
    strTabela = "COOIS" 'nome da tabela no banco

    Delimitador = "|" 'defina aqui qual o delimitador que não quer importar

    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

    If Mid(LinhaDoTexto, 2, 1) = "3" Then

    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


    LOGO APOS A LEITURA DO ARQUIVO O CODIGO DA UMA MENSAGEM DE ERRO



    ERRO NA EXECUÇÃO DO SQL ‘INSERT INTO COOIS VALUES
    “’ 30005075”PIWG1330092’ZP01 ’’1,000’’ 0 ‘’PC ‘’TECO MSPT PRC CSER SETC ‘’LENOVO ‘’ ‘’ ‘’


    NO FINAL DO ARQUIVO TEM DUAS COLUNAS EM BRANCO POIS SÃO DE DATA

    ALGUEM PODE ME AJUDAR
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 3/3/2012, 21:19

    é realmente não da estou desistindo nas agradeço a todos que me ajudaram

    obrigado
    avatar
    Convidad
    Convidado


    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  Convidad 3/3/2012, 21:31


    Olá!

    Amigo, pessoalmente não tenho experiência com import/export txt.
    Mas o colega chsestrem sabe muito e está acompanhando o tópico.
    Quem sabe daqui a pouco...

    Abraço!
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 4/3/2012, 12:13

    Bom dia

    Norbs

    realmente o access é dificiel nas acredito que no forum alguem conheça uma solução para isso, no codigo acima consegui fazer a leitura do arquivo txt apartir linha que eu preciso que ele comece a ler mas na hora de transferir para a tabela está dando um erro e não sei como resolver nas tenho fé que um dos colegas do forum possa me ajudar.

    Agradeço muito sua atenção.

    há não sei se é por causa da tabela que ja existe no access ou se falta tirar ou colocar algum comando para inserir as linha na tabela.

    o codigo acima foi desenvolvido pelo JPaulo para importar arquivo txt sem delimitador ja no arquivo que tenho que importar a linha começa com delimitador.

    vou aguardar mais um pouco para ver se algum pode me ajudar.

    o codigo que o chsestrem postou tentei usalo nas quando tento executa-lo fica como congelado ou seja na executa.


    um abraço




    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  chsestrem 4/3/2012, 18:32

    Amigo, não estou vendo dificuldade nenhuma na importação deste TXT.

    Até porque seu TXT tem delimitador, o que já ajuda demais.

    Apenas verifique quanto ao formato dos campos que você tem nesta Tabela

    Teste

    Sds,



    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 4/3/2012, 19:18

    BOA TARDE!

    Charles Sestrem

    Desde ja quero agradecer pela dedicação em ajudar

    Testei o codigo e esta fincionando, mas no final do arquivo tem uma linha trasejada que causa um erro tem como inserir no codigo ex: quando encontrar esta linha trasejada sair ou para o loop ou pular a linha

    ex: do final do arquivo

    |30005175|455NQGBOL01|ZP01 | 15,120 | 2,200 |PC |REL PCNF PRC GMPS MACM PDLV SETC |PCBA HDD/B S7074 P1VE6 |02/16/2012|02/18/2012|
    |30005176|455NL2BOL01|ZP01 | 15,120 | 1,800 |PC |REL PCNF PRC GMPS MACM PDLV SETC |PCBA USB/B S7071 P1VE6 |02/16/2012|02/18/2012|
    |30005201|4619AKBOL05|ZP01 | 15,120 | 3,980 |PC |REL MSPT PCNF PRC GMPS PDLV SETC |FW MB A7071 P1VE6 C50 N3G BR |02/16/2012|02/18/2012|
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 4/3/2012, 20:55

    Boa tarde

    Charles Sestrem

    consegui adaptar seu codigo e ficou assim

    Option Compare Database

    Dim Linha As String
    Dim rs As DAO.Recordset
    Dim Matriz() As String


    Public Function Importa_TXT(caminho As String)


    f = FreeFile

    Set rs = CurrentDb.OpenRecordset("TblTempTxt")

    Open caminho For Input As #f

    Line Input #f, Linha ' Pula a 1ª linha
    Line Input #f, Linha ' Pula a 2ª linha
    Line Input #f, Linha ' Pula a 3ª linha
    Line Input #f, Linha ' Pula a 4ª linha
    Line Input #f, Linha ' Pula a 4ª linha
    Line Input #f, Linha ' Pula a 5ª linha

    Do While Mid(Linha, 2, 1) <> "-"

    EOF (f) ' Começa a importação a partir da 5ª linha

    Matriz() = Split(Linha, "|")
    rs.AddNew
    rs!Order = Matriz(1) ' Se não tiver delimitador "|" no começo a matriz começaria de Zero
    rs!Material = Matriz(2)
    rs!OrderType = Matriz(3)
    rs!Targetqty = Matriz(4)
    rs!Confqty = Matriz(5)
    rs!Unit = Matriz(6)
    rs!SystemStatus = Matriz(7)
    rs!MaterialDescription = Matriz(Cool
    rs!ActStart = Matriz(9)
    rs!ActFinish = Matriz(10)
    rs.Update

    Line Input #f, Linha 'lê uma linha do arquivo texto

    Loop
    Close #f
    rs.Close

    MsgBox "Arquivo Importado com Sucesso!", vbInformation, "Importação de arquivo txt"


    End Function

    como tenho varios arquivo com o mesmo formato com informações diferentes vou utilizar a mesma rotina com nome diferente e preciso que ao abrir o access todas as tabelas seja carregadas ou atualizadas.


    para colocar em um sub open devo colocar iqual a:

    Private Sub BtnImporta_Click()
    Call Importa_TXT("C:\Users\DADOS\Desktop\TESTE\Exemplo_cla3200pc\COOIS.txt")
    End Sub

    por ex:

    Private Sub auto_open()

    Call Importa_TXT_COOIS("C:\Users\DADOS\Desktop\TESTE\Exemplo_cla3200pc\COOIS.txt")
    Call Importa_TXT_ZMM64("C:\Users\DADOS\Desktop\TESTE\Exemplo_cla3200pc\ZMM64.txt")


    end sub

    sera que ao abrir ele vai colocar as informacões abaixo da existentes ou subescrever(atualizar)

    por ex: toda operação feita no sistema principal da fabrica add mais um linha no arquivo ex: arquivo inicial com 10 linhas apos atualizar o sistema 11 linhas o sistema importa para a pasta onde esta o arquivo coois.txt salvando com o mesmo nomo ou seja atualiza o arquivo txt com as nova informações será que ao abrir o access ele vai atualizar o ou repetir todas as informações por exemplo ele vai ate a ultima linha e repete as informações ou so atualiza agravando encima da existem.
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  chsestrem 5/3/2012, 12:49

    Amigo você testou o codigo?

    Claro que da forma que está, a rotina vai duplicar os registros cada vez
    que você importar o arquivo.

    Se este txt for um arquivo apenas, e vem atualizado sempre que você entrar no sistema,

    basta fazer um "delete from sua tabela" antes de importar.

    Agora se você tem que incluir os registros não existentes de vários arquivos, terá

    que fazer uma rotina para isso.

    Sds,


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  valliclay 5/3/2012, 14:29

    Bom Dia

    Charles Sestrem.

    sim testei e deu certo ja esta funcionando.

    eu entendi sobre o delete from vou utilizar no codigo

    vou postar como resolvido este tópico.

    Agradeço muito a tua ajuda e também a do norbs

    caso eu tenha mais alguma duvida vou a postar novamente

    Deus abençoe a todos

    obrigado

    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  chsestrem 5/3/2012, 14:48

    Valeu amigo,

    Sucesso no seu trabalho!

    Sds,


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br

    Conteúdo patrocinado


    [Resolvido]importar arquivo em txt para o access Empty Re: [Resolvido]importar arquivo em txt para o access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 02:27