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]Ajustar tabela txt tabulada importada em uma nova

    Compartilhe

    jbulhoes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 15/04/2014

    [Resolvido]Ajustar tabela txt tabulada importada em uma nova

    Mensagem  jbulhoes em Sab 26 Abr 2014, 13:23

    Pessoal, bom dia.


    Aprendi muita coisa lendo os tópicos desse fórum, gostaria de primeiramente agradecer ao pessoal que colabora e de forma inteligente, dedica parte de seu tempo a ajudar outras pessoas e vou a medida do tempo estar colaborando também.

    Meu problema é que tenho que importar arquivo txt  que vem de forma tabulada e com os campos distribuídos da seguinte forma:

    (material/Atualização)                        ValorR$
    Campo1               Campo2        Campo3

    01.0024.0234.0

    01/2008
                         Referência          27,8000
    06/2001
                         Referência           14,8720

    01.0030.0630.4

    03/2012
                          Referência         3,2400
    08/2005
                          Referência         4,1880
    09/2004
                          Referência         3,3200
    02/2004
                          Referência         3,4200


    Criei uma nova tabela para receber os dados temporariamente só que pegando sempre o mês mais recente para cada atualização do código do material:

    A tabela tem que ficar assim:


    Campo1               Campo2           Campo3

    01.0024.0234.0       01/2008       27,8000
    01.0030.0630.4       03/2012         3,2400


    Criei a função abaixo mais não está acertando porque tenho que identificar o formato do campo para que possa mover na tabela de origem. Por favor, já tentei durante horas e realmente não consigo terminar.

    Function Preencher() As Boolean
    Dim TMat, TMat1 As DAO.Recordset
    Dim x
    Set TMat = CurrentDb.OpenRecordset("Precoreferencial2")
    Set TMat1 = CurrentDb.OpenRecordset("Precoreferencial3")
    x = Format(TMat(0), "00\.0000\.0000\.0")
     
    Do While Not TMat.EOF
    If Not IsNull(TMat(0) = x) Then
     TMat1.AddNew
     TMat1(0) = TMat(0)
     TMat.MoveNext
     TMat1(1) = TMat(0)
     TMat.MoveNext
     TMat1(2) = TMat(2)
     TMat1.Update
     TMat.MoveNext
     Else
     TMat.MoveNext
     End If

    Loop
         
    TMat.Close
    TMat1.Close
    Exit Function
    End Function


    Abraço a todos


    Última edição por jbulhoes em Sab 26 Abr 2014, 14:09, editado 2 vez(es)

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Ajustar tabela txt tabulada importada em uma nova

    Mensagem  Alexandre Neves em Sab 26 Abr 2014, 13:38

    Boa tarde e bem-vindo ao fórum
    Disponibilize matéria para se trabalhar


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

    jbulhoes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 15/04/2014

    Arquivo Disponibilizado

    Mensagem  jbulhoes em Sab 26 Abr 2014, 14:07

    Obrigado Alexandre, segue arquivo , esqueci, desculpas.

    jbulhoes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 15/04/2014

    [Resolvido]Ajustar tabela txt tabulada importada em uma nova

    Mensagem  jbulhoes em Ter 29 Abr 2014, 22:26

    Alexandre, agradeço a atenção.

    Fiquei alguns dias concluindo outras partes do banco e depois de algumas horas quebrando a cabeça, consegui resolver. Para isso fiz testes para localizar o formato do campo (0) da tabela importada e depois ficou até fácil. Se tiver algum colega que tenha uma idéia otimizada a respeito, fique à vontade, até porque devem existir várias maneiras de fazer a mesma coisa.


    Function UpdatePU() As Boolean
    Dim TMat, TMat1 As DAO.Recordset
    Dim strSQL, strSQLI
    Set TMat = CurrentDb.OpenRecordset("Precoreferencial2")
    Set TMat1 = CurrentDb.OpenRecordset("Tbl_Prunit")
     
    Do While Not TMat.EOF
    If (TMat(0) = Format(TMat(0), "00\.0000\.0000\.0")) Then
     TMat1.AddNew
    'TMat1(0) = Left(TMat(0), InStr(1, TMat(0), ".") - 0) & Left(Mid(TMat(0), InStr(4, TMat(0), ".") - 3), 4) & Right(TMat(0), InStr(4, TMat(0), ".") - 3) -----  Com pontuação
     TMat1(0) = Left(TMat(0), InStr(1, TMat(0), ".") - 1) & Left(Mid(TMat(0), InStr(4, TMat(0), ".") - 3), 3) & Right(Left(Right(TMat(0), InStr(5, TMat(0), ".") - 1), 5) & Right(TMat(0), InStr(11, TMat(0), ".") - 12), 4) '----  Sem pontuação
     TMat.MoveNext
     TMat1(1) = Trim(TMat(0))
     TMat.MoveNext
     TMat1(2) = TMat(2)
     TMat1.UPDATE
     Else
     TMat.MoveNext
     End If
    Loop


    'Atualiza os dados da tabela principal de materais
    DoCmd.SetWarnings False
    strSQL = "UPDATE Tbl_Mat INNER JOIN Tbl_Prunit ON Tbl_Mat.COD_MAT = Tbl_Prunit.Campo1 SET Tbl_Mat.PRECOUNIT = [Tbl_Prunit]![Campo3], Tbl_Mat.UPDATESISTEM = Now();"
    DoCmd.RunSQL (strSQL)
    DoCmd.SetWarnings False

    'Apaga os dados da tabela temporária Tbl_Prunit
    'DoCmd.SetWarnings False
    'strSQLI = "Delete * from Tbl_Prunit"
    'DoCmd.RunSQL (strSQLI)
    'DoCmd.SetWarnings False

    TMat.Close
    TMat1.Close
    Exit Function
    End Function


    Obrigado ao fórum pelo espaço.


    Última edição por jbulhoes em Qua 30 Abr 2014, 20:45, editado 1 vez(es)

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Ajustar tabela txt tabulada importada em uma nova

    Mensagem  Alexandre Neves em Qua 30 Abr 2014, 18:57

    Boa tarde,
    Mantenha o título para apresentar o assunto tratado.
    [Você precisa estar registrado e conectado para ver esta imagem.]


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

      Data/hora atual: Ter 06 Dez 2016, 05:45