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]Loop importar vários arquivos

    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido]Loop importar vários arquivos Empty [Resolvido]Loop importar vários arquivos

    Mensagem  Jitano 13/6/2011, 16:56

    Oi

    Tenho um código para importação de ficheiros para tabela access mas só importa ficheiro a ficheiro
    eu queria um loop para importar todos os ficheiros numa pasta
    como faço?

    Código:
     Private Sub Comando4_Click()
    Dim F As Long, Linha As String
    Dim db As Database, rs As Recordset
     
    Dim nextFile As String: nextFile = Dir$("C:\Arquivo")
     
    'abre o banco de dados
    Set db = CurrentDb

    F = FreeFile
     
    'abre o arquivo texto
    Open "C:\Arquivo" & nextFile For Input As F
     
    'se a tabela não existir escapa da mensagem de erro
    On Error Resume Next
     
    'exclui a tabela se ela já existir
    db.Execute "DROP TABLE X"
     
    'activa o tratamento de erros
    On Error GoTo trata_erro
     
    'cria a tabela com a estrutura
    db.Execute "CREATE TABLE X ([data] DATETIME, "
     
    'abre a tabela para receber os dados
    Set rs = db.OpenRecordset("L595", dbOpenTable)
     
    'lê uma linha do arquivo texto
    Do While Not EOF(F)
    Line Input #F, Linha
            'instruções
     
        Loop
     
    MsgBox "Txt importados com sucesso !! "
    rs.Close
    db.Close
    Close #F
    Exit Sub
    trata_erro:
    MsgBox Err.Description
    End Sub



    Última edição por Jitano em 21/6/2011, 15:46, editado 1 vez(es)
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido]Loop importar vários arquivos Empty Re: [Resolvido]Loop importar vários arquivos

    Mensagem  Jitano 14/6/2011, 08:38

    Precisava só agora de ajuda no seguinte:
    Em vez de converter ficheiro a ficheiro, 1 a 1, converter todos os ficheiros que estão na pasta!

    O site é este: http://www.macoratti.net/txt_arqs.htm
    O código é o seguinte:

    Código:
    Private Sub Command1_Click()
    Dim F As Long, Linha As String
    Dim db As Database, rs As Recordset
    F = FreeFile
    Open txttexto.Text For Input As F 'abre o arquivo texto
    Set db = DBEngine(0).OpenDatabase(txtbase.Text) 'abre o banco de dados
    On Error Resume Next 'se a tabela não existir escapa da mensagem de erro
    db.Execute "DROP TABLE Clientes" 'exclui a tabela se ela ja existir
    On Error GoTo trata_erro 'ativa tratamento de erros
    db.Execute "CREATE TABLE Clientes (ID LONG, [Nome] TEXT (50), " _
    & "[Endereco] TEXT (50), [telefone] TEXT (15), [Nascimento] TEXT (10))" 'cria a tabela c/a estrutura
    Set rs = db.OpenRecordset("Clientes", dbOpenTable) 'abre a tabela para receber os dados
    Do While Not EOF(F)
    Line Input #F, Linha 'lê uma linha do arquivo texto
    'extrai a informação do arquivo texto usando a função MID
    codigo = Mid(Linha, 1, 4)
    nome = Mid(Linha, 5, 20)
    endereco = Mid(Linha, 25, 23)
    telefone = Mid(Linha, 48, 10)
    nascimento = Mid(Linha, 58, 8)
    rs.AddNew 'inclui novo registro
    rs(0) = codigo
    rs(1) = nome
    rs(2) = endereco
    rs(3) = telefone
    rs(4) = nascimento
    rs.Update 'grava o registro inserido
    Loop
    MsgBox "Arquivo texto importado com sucesso !! "
    rs.Close
    db.Close
    Close #F
    Exit Sub
    trata_erro:
    MsgBox Err.Description
    End Sub

    Em vez de C:\teste\teste.txt (ficheiro a ficheiro)
    Tentei:
    C:\teste\

    C:\teste\*.txt
    C:\teste\*.*

    mas dá erro!
    como altero no código?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Loop importar vários arquivos Empty Re: [Resolvido]Loop importar vários arquivos

    Mensagem  vieirasoft 18/6/2011, 20:46

    Amigo Jitano

    Esse código foi retirado do site Macoratti.net. Contacte o autor do código por favor.
    Jitano
    Jitano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Localização : Portugal
    Mensagens : 99
    Registrado : 13/06/2011

    [Resolvido]Loop importar vários arquivos Empty Re: [Resolvido]Loop importar vários arquivos

    Mensagem  Jitano 21/6/2011, 15:50

    vieirasoft,

    Já tinha enviado email a pedir ajuda para o site Macoratti.net, nas não responderam até agora.

    Entretanto consegui resolver o meu problema!
    Acrescentei um ciclo Do While Len(file_name) > 0 e defini antes file_name = Dir$(dir_path).

    Agora já importa todos os ficheiros na dir_path em vez de importar um a um!

    Obrigado

    Conteúdo patrocinado


    [Resolvido]Loop importar vários arquivos Empty Re: [Resolvido]Loop importar vários arquivos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 11:14