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]Aplicar formatação em dados da tabela

    Compartilhe

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 178
    Registrado : 29/04/2011

    Aplicar formatação em dados da tabela

    Mensagem  vinicius.anna em 7/11/2013, 15:39

    Boa tarde

    Possuo uma tabela onde um determinado campo está gravado conforme abaixo:
    Dados da tabela
    1
    11
    1101
    110101
    11010102
    11010102001

    Preciso fazer com que este campo seja gravado com formatação, conforme abaixo:
    1
    1.1
    1.1.01
    1.1.01.01
    1.1.01.01.02
    1.1.01.01.02.001

    Alguém tem alguma dica de como posso fazê-lo

    Obrigado.

    Att. Vinicius
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3932
    Registrado : 20/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Silvio em 7/11/2013, 15:51

    algo assim...

    Código:
     If Len(seucampo) <> "" Then
        Select Case Len(seu campo)
            Case 1
                Me.seucampo.Format = "@"
            Case 2
                Me.seucampo.Format = "@.@"
             Case 4
                Me.seucampo.Format = "@.@.@@"
    end select
    end  if  
           

    e assim por diante.....


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 178
    Registrado : 29/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  vinicius.anna em 7/11/2013, 16:29

    Boa tarde Silvio,

    Muito obrigado pela ajuda

    Mas não consegui fazer com que funcione.....

    Disponibilizo em anexo parte da tabela onde tenho o campo Conta, que a conta sem a máscara e o campo contamascara que irá receber a conta com o formato definido.

    No formulário criei o botão mas não consegui fazer com que funcione corretamente.

    Se puder me mostrar onde estou errando, lhe agradeço.

    Desculpe a falta de conhecimento.

    Att. Vinicius
    Anexos
    Teste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (48 Kb) Baixado 17 vez(es)

    Convidado
    Convidado

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Convidado em 7/11/2013, 20:59

    Uma perguntinha vinicius, vc quer aproveitar esses registros que já estão cadastrados?

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 178
    Registrado : 29/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  vinicius.anna em 7/11/2013, 21:26

    Boa noite,

    Sim, preciso aproveitar

    Att Vinicius

    Convidado
    Convidado

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Convidado em 7/11/2013, 21:39

    Então vc vai ter um pouco de trabalho, que é o seguinte, depois de abrir o formulário vc vai observar que até o registro 200 já está preenchido e do registro 201 em diante vc faz dessa forma: apaga o último caracter da numeração e redigita novamente esse caracter em todos campo restante e pressiona o enter para o campo ContaMascara sofra a alteração e a partir de um novo registro ele já vai funcionar normalmente.

    http://www.4shared.com/rar/zqdwd1gu/Teste_Alterado.html
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3932
    Registrado : 20/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Silvio em 7/11/2013, 22:06

    Boa noite...

    Beto valeu pela ajuda...

    Apenas dando um pitaquinho, no teu código:

    Código:
    Private Sub Conta_AfterUpdate()
    If Len(Me.Conta) = 1 Then
    Me.Conta.InputMask = ""
    ElseIf Len(Me.Conta) = 2 Then
    Me.ContaMascara = Format(Me.Conta, "0\.0")
    End If

    If Len(Me.Conta) = 4 Then
    Me.ContaMascara = Format(Me.Conta, "0\.0\.00")
    End If

    If Len(Me.Conta) = 6 Then
    Me.ContaMascara = Format(Me.Conta, "0\.0\.00\.00")
    ElseIf Len(Me.Conta) = 8 Then
    Me.ContaMascara = Format(Me.Conta, "0\.0\.00\.00\.00")
    End If

    If Len(Me.Conta) = 11 Then
    Me.ContaMascara = Format(Me.Conta, "0\.0\.00\.00\.00\.000")

    End If

    End Sub
    Está o mesmo perfeito.

    Abraços desse teu amigo.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 178
    Registrado : 29/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  vinicius.anna em 7/11/2013, 22:39

    Boa noite

    Fiz os testes e o código abaixo funcionou perfeitamente:

    Código:

    If Len(Me.Conta) = 1 Then
        Me.Conta.InputMask = ""
    ElseIf Len(Me.Conta) = 2 Then
        Me.ContaMascara = Format(Me.Conta, "@\.@")
    End If
    If Len(Me.Conta) = 4 Then
        Me.ContaMascara = Format(Me.Conta, "@\.@\.@@")
    End If
    If Len(Me.Conta) = 6 Then
        Me.ContaMascara = Format(Me.Conta, "@\.@\.@@\.@@")
    End If
    If Len(Me.Conta) = 8 Then
        Me.ContaMascara = Format(Me.Conta, "@\.@\.@@\.@@\.@@")
    End If
    If Len(Me.Conta) = 11 Then
        Me.ContaMascara = Format(Me.Conta, "@\.@\.@@\.@@\.@@\.@@@")
    End If

    O problema é que a tabela tem em torno de 500.000 registros, ai estava tentando fazer uma adaptação da seguinte forma:

    Código:

    Dim strSql As String
    Dim rs As DAO.Recordset
    Dim ym As Long
    Dim k As Long
    strSql = "SELECT * FROM reg_I050 ORDER BY Id_Registro;"
    Set rs = CurrentDb.OpenRecordset(strSql)
    rs.MoveFirst
    ym = Val(Len(rs!Conta))
    k = 0
    Do While Not rs.EOF
        If Len(rs!Conta) = 1 Then
            'Me.Conta.InputMask = ""
            'ym = Val(rs!Conta.InputMask = "@")
        ElseIf Len(Me.Conta) = 2 Then
            'ContaMascara = Format(Me.Conta, "@\.@")
            ym = Val(Format(rs!Conta, "@\.@"))
            k = k + 1
        ElseIf Len(Me.Conta) = 4 Then
            'ContaMascara = Format(Me.Conta, "@\.@\.@@")
            ym = Val(Format(rs!Conta, "@\.@\.@@"))
            k = k + 1
        ElseIf Len(Me.Conta) = 6 Then
            'ContaMascara = Format(Me.Conta, "@\.@\.@@\.@@")
            ym = Val(Format(rs!Conta, "@\.@\.@@\.@@"))
            k = k + 1
        ElseIf Len(Me.Conta) = 8 Then
            'ContaMascara = Format(Me.Conta, "@\.@\.@@\.@@\.@@")
            ym = Val(Format(rs!Conta, "@\.@\.@@\.@@\.@@"))
            k = k + 1
        ElseIf Len(Me.Conta) = 11 Then
            'ContaMascara = Format(Me.Conta, "@\.@\.@@\.@@\.@@\.@@@")
            ym = Val(Format(rs!Conta, "@\.@\.@@\.@@\.@@\.@@@"))
            k = k + 1
        End If
        rs.Edit
            rs!ContaMascara = Val(ym)
        rs.Update
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    MsgBox "Término da montagem...."
    com esta adaptação até que executa, sem mensagem de erros, porém, o campo ContaMascara, para todos os registros grava apenas o n. 1.
    Tem alguma dica de como posso fazê-lo.

    E muito obrigado pela ajuda / atençao.

    Saudações
    Vinicius
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3932
    Registrado : 20/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Silvio em 7/11/2013, 22:50

    Por algum acaso.....está nessa rotina:

    Private Sub Conta_AfterUpdate()
    Se não estiver...nada feito mesmo

    O exemplo do colega Beto, esta funfando legal.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 178
    Registrado : 29/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  vinicius.anna em 7/11/2013, 22:57

    Boa noite,

    Sim, o código está funcionando perfeitamente......., coloquei ele no evento Private Sub Conta_Exit(Cancel As Integer), ai basta passar pelo campo...., fica simples, o meu último problema é a quantidade de registros, tem quase 500.000, por isso estava tentando adaptar.

    Saudações
    Vinicius

    Convidado
    Convidado

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Convidado em 7/11/2013, 23:12

    Boa noite Silvio e Vinicius. Vinicios vc leu minha msg acima, fez o teste que mencionei? Essa atualização infelizmente vc terá que fazer manual, do jeito que mencionei acima, apaga o último dígito da numeração e redigita novamente esse dígito e pressiona o enter que vai atualizar o campo ContaMascara, se fosse um único formato daria para usar o UPDATE  e atualizar a tabela, mas são vários formatos. Silvio no exemplo que postei ele está daquele jeito para o caso do campo recebr uma digitação de 20 dígitos.

    Convidado
    Convidado

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Convidado em 7/11/2013, 23:20

    a não ser que vc queira gravar na tabela sem o formato(máscara) ai sim vc atualizar o campo ContaMascara e num relatório ou até mesmo em um formulário consulta colocar o formato.

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 178
    Registrado : 29/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  vinicius.anna em 7/11/2013, 23:46

    Boa noite Beto e Silvio

    Muito obrigado pela ajuda e dicas.

    Beto, com sua última dica sobre o sql me "toquei" do que poderia fazer via sql criando uma tabela temporária e depois atualizando a tabela original.

    O código abaixo faz o que preciso na tabela existente.....

    Código:

    CurrentDb.Execute "INSERT INTO tb_Temp ( Conta, ContaMascara ) SELECT reg_I050.Conta, reg_I050.ContaMascara FROM reg_I050 WHERE (((Len([Conta]))='1'));"
    CurrentDb.Execute "INSERT INTO tb_Temp ( Conta, ContaMascara, teste ) SELECT reg_I050.Conta, Format([Conta],'@\.@') AS ContaTemp, reg_I050.ContaMascara FROM reg_I050 WHERE (((Len([Conta]))='2'));"
    CurrentDb.Execute "INSERT INTO tb_Temp ( Conta, ContaMascara, teste ) SELECT reg_I050.Conta, Format([Conta],'@\.@\.@@') AS ContaTemp, reg_I050.ContaMascara FROM reg_I050 WHERE (((Len([Conta]))='4'));"
    CurrentDb.Execute "INSERT INTO tb_Temp ( Conta, ContaMascara, teste ) SELECT reg_I050.Conta, Format([Conta],'@\.@\.@@\.@@') AS ContaTemp, reg_I050.ContaMascara FROM reg_I050 WHERE (((Len([Conta]))='6'));"
    CurrentDb.Execute "INSERT INTO tb_Temp ( Conta, ContaMascara, teste ) SELECT reg_I050.Conta, Format([Conta],'@\.@\.@@\.@@\.@@') AS ContaTemp, reg_I050.ContaMascara FROM reg_I050 WHERE (((Len([Conta]))='8'));"
    CurrentDb.Execute "INSERT INTO tb_Temp ( Conta, ContaMascara, teste ) SELECT reg_I050.Conta, Format([Conta],'@\.@\.@@\.@@\.@@\.@@@') AS ContaTemp, reg_I050.ContaMascara FROM reg_I050 WHERE (((Len([Conta]))='11'));"

    Saudações
    Vinicius

    Convidado
    Convidado

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Convidado em 7/11/2013, 23:59

    Ok Vinicius, agradecimentos do fórum pelo retorno.
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3932
    Registrado : 20/04/2011

    Re: [Resolvido]Aplicar formatação em dados da tabela

    Mensagem  Silvio em 8/11/2013, 00:23

    Boa noite Beto e Vinicius...

    É para isso que estamos todos aqui.....aprendendo e ensinando uns com os outros.

    Abraços a ambos.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: 22/6/2018, 06:51