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

    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  vinicius.anna 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
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Silvio 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.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  vinicius.anna 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
    [Resolvido]Aplicar formatação em dados da tabela AttachmentTeste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (48 Kb) Baixado 19 vez(es)
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 7/11/2013, 20:59

    Uma perguntinha vinicius, vc quer aproveitar esses registros que já estão cadastrados?
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

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

    Boa noite,

    Sim, preciso aproveitar

    Att Vinicius
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Silvio 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.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  vinicius.anna 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
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Silvio 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.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  vinicius.anna 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
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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.
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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.
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  vinicius.anna 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
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 7/11/2013, 23:59

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Silvio 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.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 22:02