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

4 participantes

    [Resolvido]Colocar virgula automática 2 casas á esquerda

    avatar
    João
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Colocar virgula automática 2 casas á esquerda

    Mensagem  João 7/5/2011, 14:35

    Tenho um formulário com vários campos Moeda e esses campos tem sempre 2 casas decimais, gostaria que a vírgula fosse colocada automaticamente sem necessidade de a digitar:
    Por exemplo ao digitar 4444, ele colocasse 44,44, é possivel ?
    Obrigado
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  criquio 7/5/2011, 14:39

    Vai ser sempre digitado assim, com inteiros e decimais juntos? Por exemplo, se for 44,00 será sempre digitado 4400? Outra coisa, nunca acontecerá de ter número inteiro para o qual não seja necessário casas decimais? Ou nesse caso sempre terão dois zeros à direita?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    João
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  João 7/5/2011, 14:42

    Terá sempre 2 zeros á direita, mas pode ter numeros inteiros como por exemplo 40 mas terá que aparecer no campo 40,00
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4488
    Registrado : 06/11/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Assis 7/5/2011, 14:56

    Teste

    Private Sub SeuCampo_Exit(Cancel As Integer)

    On Error Resume Next
    If Len(SeuCamp.Text) < 4 Then
    Vlr = Format(Vlr, "#,##0.00") * 100
    End If
    If Len(SeuCamp.Text) >= 4 Then
    Vlr = Format(SeuCamp, "#.##0,00") / 100

    End If

    Exemplo: Para 40,00 tem de digitar 4000, para 40,25 tem de digitar 4025


    .................................................................................
    *** Só sei que nada sei ***
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  criquio 7/5/2011, 15:05

    E serão sempre 4 algarismos? Se for, coloque assim no evento "Após atualizar" do campo:

    Me.NomeDoCampo = Left(Me.NomeDoCampo, 2) & "," & Right(Me.NomeDoCampo, 2)


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    João
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  João 7/5/2011, 15:09

    o exemplo disponibilizado pelo Assis adapta-se perfeitamente, pois nem sempre tem 4 dígitos, pode ter mais.
    Obrigado a ambos.
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4488
    Registrado : 06/11/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Assis 7/5/2011, 15:28

    Boa tarde

    Criquio

    Como seria se não tivesse sempre 4 algarismos ?


    .................................................................................
    *** Só sei que nada sei ***
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  criquio 7/5/2011, 17:00

    Olá Assis, poderia ser algo assim:

    Dim Esquerda As Long

    If Len(Me.NomeCampo) < 3 Then
    Me.NomeCampo = Me.NomeCampo & ",00"
    Else
    Esquerda = Len(Me.NomeCampo) - 2
    Me.NomeCampo = Left(Me.NomeCampo, Esquerda) & "," & Right(Me.NomeCampo, 2)

    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4488
    Registrado : 06/11/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Assis 7/5/2011, 17:29

    Criquio

    O exemplo que enviei executa a função ao sair do campo.
    Mas tem um inconveniente... se o campo voltar a receber o FOCO o valor do campo volta a alterar ao sair do mesmo.
    Sempre que o campo recebe o Foco ao sair do campo o valor altera sempre.

    Precisava de uma ajuda para evitar esta situação.

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  criquio 7/5/2011, 17:30

    Que tal o evento "Após atualizar"?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4488
    Registrado : 06/11/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Assis 7/5/2011, 17:41

    Criquio

    Se fez o download do exemplo que enviei teste Por favor, para ver como são diferentes os valores no "Apos Actualizar" e no "Sair".

    Teste com o valor 75

    Ao digitar 75 ao "sair" do campo tica 0,75 o que é correto.

    Ao digitar 75 "apos actualizar" o campo tica 75,00 o que é errado.






    .................................................................................
    *** Só sei que nada sei ***
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  criquio 7/5/2011, 18:11

    De acordo o segundo post do criador do tópico, teria sempre 2 zeros à direita. Ou seja, seria sempre valores inteiros com dois zeros à direita. Acho que o certo, ao digitar 25 teria que ser 25,00 mesmo e não 0,25, a menos que eu não tenha entendido bem. Pode ser tambem que o amigo João quis dizer duas casas decimais e não dois zeros Very Happy


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4488
    Registrado : 06/11/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Assis 7/5/2011, 18:40

    A minha ideia é transformar os digitados em Euros:

    Exemplos:

    Digito 1 Resultado será 0,01€
    Digito 10 Resultado será 0,10€
    Digito 100 Resultado será 1,00€
    Digito 101 Resultado será 1,01€
    Digito 111 Resultado será 1,101€
    Digito 1011 Resultado será 10,11€
    Digito 10000 Resultado será 100,00€
    Digito 10044 Resultado será 100,44€
    Digito 12349 Resultado será 123,49€

    Digito 123456789 Resultado será 1234567,89€

    Isto no evento apos actualizar.


    .................................................................................
    *** Só sei que nada sei ***
    criquio
    criquio
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  criquio 7/5/2011, 18:58

    Acredito que meu código possa ser aproveitado nesse caso:

    Dim Esquerda As Long

    If Len(Me.NomeCampo) = 1 Then
    Me.NomeCampo = "0,0" & Me.NomeCampo & "€"
    ElseIf Len(Me.NomeCampo) = 2 Then
    Me.NomeCampo = "0," & Me.NomeCampo & "€"
    Else
    Esquerda = Len(Me.NomeCampo) - 2
    Me.NomeCampo = Left(Me.NomeCampo, Esquerda) & "," & Right(Me.NomeCampo, 2) & "€"

    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4488
    Registrado : 06/11/2009

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Assis 7/5/2011, 19:14

    Criquio

    Acredite que o seu código pode e vai ser aproveitado por mim, e por quem mais quizer. Perfeito

    Assim já não corre o problema de o campo voltar a receber o foco e ele efectuar a função ao sair.

    Obrigado Criquio e bom fim de semana.


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Canassc
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 21/09/2020

    [Resolvido]Colocar virgula automática 2 casas á esquerda Empty Re: [Resolvido]Colocar virgula automática 2 casas á esquerda

    Mensagem  Canassc 30/9/2021, 14:12

    Bom dia.
    Consegui resolver o problema de Inserir pontos decimais automaticamente a medida que se digita um valor numérico.

    Private Sub Campo1_Change()
    Dim VAR1, VAR2
    VAR1 = Me.Campo1.Text
    If Len(VAR1) > 0 Then
       VAR2 = Replace(VAR1, ",", "") / 100
    End If
       Me.Campo1 = VAR2
       Me.ActiveControl.SelStart = 100

    End Sub

    Isto facilita muito o trabalho. Lembrando que neste caso o Campo1.DecimalPlaces deve ser 2 para valores em moeda.

      Data/hora atual: 16/10/2021, 22:00