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

    Cursor no final do textbox

    avatar
    Pietrobom
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    Cursor no final do textbox Empty Cursor no final do textbox

    Mensagem  Pietrobom 6/5/2021, 00:21

    Olá estou criando um formulário "adchist" com um text.box "historico" onde você coloca algumas informações sobre a compra do cliente e quando você clica no botão "SubmetHist" ele deve copiar o que foi escrito no textbox, fechar o formulário, abrir outro formulário - "Cadastro de Cliente", liberar a text.box "Histórico" colocar o cursor no final do texto que já existe e colar o texto que foi copiado.

    Não consigo fazer o cursor ficar no final do texto da text.box "Histórico", poderiam ajudar? Segue a programação:

    Obs. Não sou programador.

    Private Sub SubmitHist_Click()

        Me.Historico.SetFocus

        Me.Historico.SelStart = 0

        Me.Historico.SelLength = VBA.Len(Me.Historico.Text)

        DoCmd.RunCommand acCmdCopy

            DoCmd.Close

                DoCmd.OpenForm "Cadastro de Clientes", acNormal

                Forms![Cadastro de Clientes].Histórico.Locked = False

                Forms![Cadastro de Clientes].Histórico.SetFocus

                Forms![Cadastro de Clientes].Histórico.SelectionStart = Forms![Cadastro de Clientes].TextLength)

    A última linha dá erro, ainda tenho que criar o código para colar e para bloquear o text.box novamente, mas isso consigo fazer.

    O SetFocus seleciona todo o texto da text.box, se eu mandar colar direto perco o texto que já existia e não é essa a ideia.

    Desde já grato pela ajuda.
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3326
    Registrado : 21/04/2011

    Cursor no final do textbox Empty Re: Cursor no final do textbox

    Mensagem  Marcelo David 6/5/2021, 10:48

    Bom dia Pietro, seja bem vindo ao melhor fórum de Access em língua portuguesa do mundo!

    Se a intenção é apenas passar o valor do textbox Historico do formulário adchist para o textbox Histórico do formulário Cadastro de Clientes,
    seria mais elegante passar via argumento de abertura.

    Veja como ficaria:

    No formulário adchist, no clique do botão SubmitHist:

    Código:

    'Caso haja algum valor no textbox Historico, abro o formulário Cadastro de Clientes passando como
    'argumento o conteúdo do textbox Historico
     
        If Not IsNull(Me.Historico) then DoCmd.OpenForm "Cadastro de Clientes", acNormal, , , , , Me.Historico

    No evento Ao abrir do formulário Cadastro de Clientes:

    Código:

        'Verifico se há argumentos e caso haja, procedo com o código
        If Not IsNull(Me.OpenArgs) Then
        'Uso o With para evitar que escrever Me.Historico todas as vezes que for me referir ao Me.Historico
           With Me.Histórico
               'Desbloqueio o textbox
              .Locked = False
              'Foco o textbox
              .SetFocus
              'Passo o valor do OpenArgs para o textbox (mantendo o que já existe)
              'e removo o espaço em branco a esquerda da concatenação
              .Value = LTrim(.Value & " " & Me.OpenArgs)
              'Movo o curso para frente do último caracter do textbox para evitar abertura
              'que todo o texto fique selecionado
              .SelStart = Len(.txt1.Text)
          End With
        End If


    .................................................................................
    Marcelo David | Cursor no final do textbox LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev
    avatar
    Pietrobom
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    Cursor no final do textbox Empty Cursor no final do textbox

    Mensagem  Pietrobom 6/5/2021, 11:49

    Olá Marcelo,

    Muito obrigado pela sua resposta. Coloquei os códigos no adchist e no evento Form_Load no formulário Cadastro de Clientes, porém ele deu um erro de "membros de dados não encontrado" no ".txt1" nessa linha:

    .SelStart = Len(.txt1.Text)

    Eu tinha que substituir esse termo?

    Grato.
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3326
    Registrado : 21/04/2011

    Cursor no final do textbox Empty Re: Cursor no final do textbox

    Mensagem  Marcelo David 6/5/2021, 13:26

    Escrevi errado. Remova o destacado em vermelho:
    .SelStart = Len(.txt1.Text)
    deverá ficar assim:
    .SelStart = Len(.Text)



    .................................................................................
    Marcelo David | Cursor no final do textbox LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev

    Pietrobom gosta desta mensagem

    avatar
    Pietrobom
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    Cursor no final do textbox Empty Re: Cursor no final do textbox

    Mensagem  Pietrobom 6/5/2021, 13:41

    Marcelo, muito obrigado mais uma vez.

    Outra questão, teria como, na concatenação, dar um Enter (descer uma linha) entre o texto já existente e o texto novo que está sendo adicionado do outro formulário?

    Abçs
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3326
    Registrado : 21/04/2011

    Cursor no final do textbox Empty Re: Cursor no final do textbox

    Mensagem  Marcelo David 6/5/2021, 15:15

    Altere essa linha:

    .Value = LTrim(.Value & " " & Me.OpenArgs)
    para
    .Value = .Value & IIf(IsNull(.Value), "", vbNewLine) & Me.OpenArgs

    E caso queira que o cursor do mouse se posicione logo no início do texto, altere essa linha:
    .SelStart = Len(.Text)
    para
    .SelStart = 0

    Agora se quiser que continue indo para o final do texto, deixe como estava.


    .................................................................................
    Marcelo David | Cursor no final do textbox LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev

    Pietrobom gosta desta mensagem


      Data/hora atual: 12/6/2021, 19:58