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]Formulário Substituir texto

    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Formulário Substituir texto Empty [Resolvido]Formulário Substituir texto

    Mensagem  Cleniroweb 12/12/2014, 04:16

    Caros colegas,

    Tenho a seguintes situação:

    Tenho uma tabela com os campos A e B
    Um formulário baseado nesta mesma tabela
    Quero construir a seguinte condição:
    No formulário, na caixa de texto A, digito 1 e na caixa de texto B ocorre a substituição do texto existente por "José", mas se eu digitar 2 na caixa de texto A, ocorrerá a substituição do texto existente por "Maria" e se eu digitar um número diferente de 1 ou 2, manterá o texto existente na caixa de texto B. Enfim, tenho um botão para executar essa ação de substituir os textos e atualizar na tabela de origem mas não sei como construir o código, tenho que usar "replace"?

    Desde já obrigado pela ajuda,
    Cleniro,
    Crying or Very sad
    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Formulário Substituir texto Empty Re: [Resolvido]Formulário Substituir texto

    Mensagem  LiveBrain 12/12/2014, 05:43

    Opa amigo,
    Se for para substituir todo do texto de B, pode usar uma condicional simples

    Código:
    IF TextoA ="1" then
      TextoB="José"
    ElseIF TextoA="2" then
      TextoB="Maria"
    End if


    o Replace é mais indicado quando você quer substituir parte de um texto, como no exemplo abaixo:

    Digamos que sua CaixaDeTexto possua a frase: Teste do Replace
    Então usaria

    Código:
    CaixaDeTexto= Replace(CaixaDeTexto, "do", "com a função")


    O resultado da sua CaixaDeTexto ficaria: Teste com a função Replace


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Formulário Substituir texto Empty Formulário Substituir texto

    Mensagem  Cleniroweb 13/12/2014, 21:03

    LiveBrain,

    Excelente, o primeiro exemplo atendeu o que precisava, só mais um detalhe se me permite, gostaria de limitar uma quantidade de caracteres via código na caixa de texto, não importando se é letra ou número, pode me ajudar?

    Obrigado,
    Cleniro.
    bounce
    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Formulário Substituir texto Empty Re: [Resolvido]Formulário Substituir texto

    Mensagem  LiveBrain 13/12/2014, 23:43

    Opa Cleniro, no meu exemplo eu estou limitando a quantidade de caracteres em 5, mas vc pode alterar


    1º Criaria uma SUB igual abaixo (voce pode copiar e colar direto no seu código)

    Código:
    Sub LimitadorCaracteres(KeyAscii, intTamanho)

         If IsNull(TextoA.Text) Then
             Exit Sub
         ElseIf Len(TextoA.Text) >= 5 Then
            KeyAscii = 0
         End If

    End Sub



    2º no Evento "Ao Pressionar Tecla" da minha caixa de texto eu colocaria o código abaixo que irá chamar a SUB

    Código:
    Private Sub TextoA_KeyPress(KeyAscii As Integer)
        If KeyAscii = 8 Then
            KeyAscii = 8
            Exit Sub
        End If
        LimitadorCaracteres KeyAscii, 5
    End Sub

    3º para evitar que o usuário cole um texto maior que 5 caracteres, colocamos o código abaixo no evento "Antes de Atualizar" da Caixa de Texto

    Código:
    Private Sub TextoA_BeforeUpdate(Cancel As Integer)
         If Len(TextoA.Text) > 5 Then
              MsgBox "Quantidade de caracteres excedeu o limite permitido"
              Cancel = True
         End If
    End Sub


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Formulário Substituir texto Empty Formulário Substituir texto

    Mensagem  Cleniroweb 15/12/2014, 00:59

    LiviBrian,

    Não consegui limitar a quantidade de caracteres usando o seu exemplo, por algum motivo não está funcionando, entretanto peguei o exemplo abaixo e funcionou certinho, será que dá para adaptar esse código para também limitar uma quantidade mínima de caracteres?


    Você pode usar um Visual Basic for Applications função (ou uma função Access Basic no Microsoft Access version 2.0) chamado a partir do evento KeyPress.

    Embora uma máscara de entrada é fácil de implementar, pode ser entediante e propensa a ser usado se você precisa limitar o número de caracteres para um valor muito maior, como 50 caracteres. Para limitar o número de caracteres digitados em uma caixa de texto para 50 caracteres, crie a seguinte função em um módulo global:
    Sub LimitFieldSize (KeyAscii, MAXLENGTH)
         Dim C As Control
         Dim CLen As Integer

         Set C = Screen.ActiveControl

         ' Exit if a non-printable character is typed.
         If KeyAscii < 32 Then Exit Sub

         ' Exit if typing replaces a selection.
         If C.SelLength > 0 Then Exit Sub

         ' Fetch length of current contents + 1 for the character typed.
         CLen = Len(C.Text & "") + 1

         ' Are there trailing spaces to contend with?
         If C.SelStart + 1 > CLen Then CLen = C.SelStart + 1

         ' Is length of string greater than max?
         If CLen > MAXLENGTH Then
           Beep
           KeyAscii = 0
         End If

      End Sub

    Chame o procedimento LimitFieldSize a partir do evento KeyPress de cada controle de caixa de texto não acoplada para limitar. Você deve passar o parâmetro KeyAscii fornecido pelo evento KeyPress e o número de caracteres que você deseja limitar a digitação em:
      Sub MyUnboundTextBox_KeyPress (KeyAscii As Integer)
         LimitFieldSize KeyAscii, 50
      End Sub

    Fonte:
    http://support.microsoft.com/kb/152050/pt-br

    ---------------
    Cleniro
    santa
    avatar
    Cleniroweb
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/03/2014

    [Resolvido]Formulário Substituir texto Empty Re: [Resolvido]Formulário Substituir texto

    Mensagem  Cleniroweb 1/2/2015, 12:20

    Resolvido, muito obrigado

    Conteúdo patrocinado


    [Resolvido]Formulário Substituir texto Empty Re: [Resolvido]Formulário Substituir texto

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 11:05