MaximoAccess

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

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)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6505
    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)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6505
    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 21 Nov 2017, 00:52