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


3 participantes

    [Resolvido]InputMask.

    Luís Augusto
    Luís Augusto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 129
    Registrado : 28/10/2011

    [Resolvido]InputMask. Empty InputMask.

    Mensagem  Luís Augusto 15/11/2011, 01:21

    Boa noite pessoal, pesquisei bastante o assunto aqui no forum porém, não encontrei caso semelhante. Seria possível criar uma InputMask que atenda à duas condições distintas?
    Tenho uma caixa de texto que receberá dois tipos de valores, número com formatação "0000" e texto "A" ou "XA" em Maiúsculo no caso de letras. Existe algum exemplo que conheçam para eu estudar?
    Tentei adaptar um exemplo do colega Dilson Marcos em parceria com Críquio cujo o nome é "ValidarPreenchendoZerosAEesquerda.mdb" mas não obtive sucesso.
    Certo da atenção de vocês, desde de já agradeço.

    Luís Augusto
    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]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  criquio 15/11/2011, 01:30

    Acrescente mais alguns verbos na explicação por gentileza. Quanto for número, será só número no formato "0000" e quanto for letra será só letra maiúscula? Ou acontecerá de ter letra e número misturado tambem?


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

    bitabit
    bitabit
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 225
    Registrado : 14/07/2010

    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  bitabit 15/11/2011, 01:39

    bom, se recebe numeros e letras e as letras tem de ser em maiusculas então utilize a função Ucase():
    Sintaxe:
    Ucase(String)

    exemplo:

    Private Sub SuaCaixadeTexto_AfterUpdate()
    Me.SuaCaixadeTexto = UCase(Me.SuaCaixadeTexto)
    End Sub



    Agora experimente com letras e letras e numeros.
    Só com numeros nao maisucula e minuscula, logo irá ficar na mesma... Very Happy


    .................................................................................
    Se vires um homem com fome, não lhe dês um peixe, ensina-o a pescar.
    Provérbio Chinês
    bitabit
    bitabit
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 225
    Registrado : 14/07/2010

    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  bitabit 15/11/2011, 01:46

    oops, criquio, nao reparei que já tinha respondido, peço desculpa.

    Também não reparei que se tratava de formatação, li na diagonal e pensei que apenas queria passar as letras de minusculas para maiusculas...

    Bom, então é melhor o colega Luís Augusto explicar-se melhor, no entanto deixo a dica da UCase, pode ser que resolva o problema... Smile


    .................................................................................
    Se vires um homem com fome, não lhe dês um peixe, ensina-o a pescar.
    Provérbio Chinês
    Luís Augusto
    Luís Augusto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 129
    Registrado : 28/10/2011

    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  Luís Augusto 15/11/2011, 10:11

    Bom dia pessoal, muito obrigado pela prestatividade.
    Perdoem-me por não ter expressado com clareza a intensão, será exatamente como o colega Críquio colocou.
    Necessito manter o padrão de preenchimento no campo "rev_clente" pois existem duas (02) possibilidades de preenchimento. Ora recebo projetos cuja a revisão é "XA", "A", "B", enfim, letras com formatação maiúscula, ora recebo projetos com revisão 1, 2, 6... cuja a formatação deverá preencher os zeros a esquerda ficando assim: "0001", "0002" ou "0006".

    Estou utilizando a expressão abaixo para avaliar o campo "cod_cliente" e "rev_cliente", porém a falta de padrão no campo "rev_cliente" faz com que ocorram falhas. Por exemplo: quando salvo [rev_cliente]= "0001" e avalio [rev_cliente]= "1" ele deixa passar!

    Private Sub Rev_Cliente_AfterUpdate()

    Call validacao

    End Sub

    "******************************************************************************************"

    Sub validacao()

    Set recst = Me.RecordsetClone

    stringCod = Me!Cod_Cliente

    recst.FindFirst "[Cod_Cliente] Like '*" & stringCod & "*'"



    If Not IsNull(Cod_Cliente) And Not IsNull(Rev_Cliente) Then

    End If


    avalia = "Cod_Cliente='" & Cod_Cliente & "' And Rev_Cliente='" & Rev_Cliente & "'"


    If DCount("Cod_Cliente", "Ciclo_Desenvolvimento", avalia) > 0 Then

    If MsgBox("O Part Number " & recst!Cod_Cliente & ", foi cadastrado anteriormente na revisão " & recst!Rev_Cliente & "." & vbCrLf & vbCrLf & "Este cadastro foi realizado na SD " & recst!SD_Numero & " dia " & recst!Data_Entrada & "." & vbCrLf & vbCrLf & "Deseja alterar o Cadastro?", vbQuestion + vbYesNo, "Duplicidade no Cadastro") = vbYes Then

    Cod_Cliente = ""
    Rev_Cliente = ""

    End If

    End If

    End Sub

    Também estou com problema de formatação dentro da mensagem onde se encontra em vermelho recst!SD_Numero. A mensagem não retorna a formatação da tabela "0001". Já tentei o método format que pude visualizar no F1 mas não ocorre erro. Devo abrir novo tópico para o supracitado?

    Muito 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]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  criquio 15/11/2011, 18:09

    Tente no evento "Após atualizar" do campo:

    If IsNumeric(Me.NomeDoCampo) Then
    Me.NomeDoCampo = Format(Me.NomeDoCampo, "0000")
    Else
    Me.NomeDoCampo = UCase(Me.NomeDoCampo)
    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.

    Luís Augusto
    Luís Augusto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 129
    Registrado : 28/10/2011

    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  Luís Augusto 15/11/2011, 18:42

    Perfeito Críquio, aprendi mais uma!
    Funcionou perfeitamente, atendeu totalmente à minha necessidade. Agora desculpe a minha insistência, você saberia me responder o porquê o RecordsetClone "recst!SD_Numero" supracitado não retorna a formatação da tabela dentro da mensagem? O campo é de tipo numérico e o formato está ex:"0001".
    Aliás, mensagens, suportam o método format?

    A mensagem deveria ser assim: Este cadastro foi realizado na SD 0001 dia...
    O que está retornando é o seguinte: Este cadastro foi realizado na SD 1 dia...

    Devo abrir novo tópico?

    Antes que eu esqueça, parabéns pelo aniversário. Que Deus lhe dê muita Saúde, Paz, Força e Determinação para continuar os seus trabalhos.
    Mais uma vez muito obrigado.

    Aguardo um retorno para dar como resolvido.
    Atenciosamente, Luís Augusto.
    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]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  criquio 15/11/2011, 18:55

    Como está colocando no código da msgbox?

    Obrigado pelos parabens!


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

    Luís Augusto
    Luís Augusto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 129
    Registrado : 28/10/2011

    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  Luís Augusto 15/11/2011, 19:38

    "O nome do campo é [SD_numero], ele é do tipo número com formato "0000"
    "O & recst!SD_Numero & está retornado apenas um (01) caractere em vez de quatro (04)
    "Segue abaixo o Sub completo se é assim que o chamam.
    "Estou Utilizando o Access 2007.

    "******************************************************************************************"

    Private Sub Rev_Cliente_AfterUpdate()

    Call validacao

    End Sub

    "******************************************************************************************"

    Sub validacao()

    Set recst = Me.RecordsetClone

    stringCod = Me!Cod_Cliente

    recst.FindFirst "[Cod_Cliente] Like '*" & stringCod & "*'"



    If Not IsNull(Cod_Cliente) And Not IsNull(Rev_Cliente) Then

    End If


    avalia = "Cod_Cliente='" & Cod_Cliente & "' And Rev_Cliente='" & Rev_Cliente & "'"


    If DCount("Cod_Cliente", "Ciclo_Desenvolvimento", avalia) > 0 Then

    If MsgBox("O Part Number " & recst!Cod_Cliente & ", foi cadastrado anteriormente na revisão " & recst!Rev_Cliente & "." & vbCrLf & vbCrLf & "Este cadastro foi realizado na SD " & recst!SD_Numero & " dia " & recst!Data_Entrada & "." & vbCrLf & vbCrLf & "Deseja alterar o Cadastro?", vbQuestion + vbYesNo, "Duplicidade no Cadastro") = vbYes Then

    Cod_Cliente = ""
    Rev_Cliente = ""

    End If

    End If

    End Sub
    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]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  criquio 15/11/2011, 20:03

    Tente assim:

    If MsgBox("O Part Number " & recst!Cod_Cliente & ", foi cadastrado anteriormente na revisão " & recst!Rev_Cliente & "." & vbCrLf & vbCrLf & "Este cadastro foi realizado na SD " & Format(recst!SD_Numero, "0000") & " dia " & recst!Data_Entrada & "." & vbCrLf & vbCrLf & "Deseja alterar o Cadastro?", vbQuestion + vbYesNo, "Duplicidade no Cadastro") = vbYes Then


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

    Luís Augusto
    Luís Augusto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 129
    Registrado : 28/10/2011

    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  Luís Augusto 15/11/2011, 20:34

    Sem palavras.
    Já havia tentado isso antes, mas ainda não domino os lugares onde deve conter um separador, mesmo com o VBA me dizendo o que fazer.
    Mais uma vez muito obrigado.
    Mais um tópico resolvido com louvor!

    Descupem a redundância.

    Conteúdo patrocinado


    [Resolvido]InputMask. Empty Re: [Resolvido]InputMask.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 19:43