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]Copiar e colar texto do Campo em Formulários diferentes

    avatar
    dsavoia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 14/07/2015

    [Resolvido]Copiar e colar texto do Campo em Formulários diferentes Empty [Resolvido]Copiar e colar texto do Campo em Formulários diferentes

    Mensagem  dsavoia 30/8/2015, 13:07

    Bom dia a todos!

    Já procurei muito aqui no fórum e não encontrei a solução... caso ela já exista, desculpe!

    É o seguinte: tenho um formulário de Pedidos (frmPedidos) onde o usuário digita o CPF do cliente numa combobox (cboCpf) que tem origem da linha na [tblClientes].[CPF]. Aí o Access vai buscar na tabela Clientes (tblClientes) esse CPF. Quando o CPF não está cadastrado, ele apresenta uma mensagem de erro. Até aí ok.

    Criei um segundo formulário para cadastrar os clientes (frmIncluirCliente), com uma caixa de texto correspondente ao campo CPF da tabela tblClientes (txtCpf).


    Já encontrei aqui no fórum uma rotina que coloquei na cboCpf, antes de atualizar, para que o sistema avise o usuário que o CPF (ou seja o Cliente) não está cadastrado ainda, e aí o formulário de cadastro já abre automaticamente.


    Private Sub cboCPF_BeforeUpdate(Cancel As Integer)

    If (IsNull(DLookup("[CPF]", "tblClientes", "[CPF] ='" & Me!CPF & "'"))) Then

       MsgBox "CPF não cadastrado no sistema!", vbInformation, "Aviso"

       DoCmd.OpenForm "frmIncluirCliente", acNormal, , , acFormAdd, acDialog
       
    End If

    End Sub


    Tudo isso pra perguntar o seguinte:

    Gostaria que o usuário não tivesse que digitar o CPF denovo (ele já digitou a primeira vez no formulário frmPedidos, na combobox cboCpf).

    Gostaria que na caixa de texto txtCpf do formulário frmIncluirCliente que abriu pela rotina, já aparecesse o CPF digitado anteriormente na combobox cboCpf do outro formulário frmPedidos.

    Desde já agradeço!


    Última edição por dsavoia em 13/9/2015, 22:28, editado 1 vez(es)
    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]Copiar e colar texto do Campo em Formulários diferentes Empty Re: [Resolvido]Copiar e colar texto do Campo em Formulários diferentes

    Mensagem  LiveBrain 31/8/2015, 00:00

    coloque esse código abaixo da linha onde voce pede pra abrir o formulário incluircliente


    forms!frmIncluirCliente!NomeDoCampoCPF=Me.CPF


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

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Copiar e colar texto do Campo em Formulários diferentes Empty Copiar e colar texto do Campo em Formulários diferentes

    Mensagem  toyebom 31/8/2015, 03:48



    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    avatar
    dsavoia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 14/07/2015

    [Resolvido]Copiar e colar texto do Campo em Formulários diferentes Empty Re: [Resolvido]Copiar e colar texto do Campo em Formulários diferentes

    Mensagem  dsavoia 3/9/2015, 22:33

    Quando escrevi o código abaixo, aconteceu o seguinte:

    Código:
    Private Sub cboCPF_BeforeUpdate(Cancel As Integer)

    If (IsNull(DLookup("[CPF]", "tblClientes", "[CPF] ='" & Me!CPF & "'"))) Then

       MsgBox "CPF não cadastrado no sistema!", vbInformation, "Aviso"

       DoCmd.OpenForm "frmIncluirClientes", acNormal, , , acFormAdd, acDialog

       Forms!frmIncluirClientes!txtCPF = Me.cboCPF
      
    End If

    End Sub

    Digitei um CPF teste e dei OK. Aí apareceu a MsgBox, OK novamente, então uma segunda janela Dialog aparece (frmIncluirClientes) em cima da primeira (frmPedidos), mas sem o CPF copiado na caixa de texto txtCPF.

    Quando cancelo a janela do frmIncluirClientes, aparece

    Erro de tempo de execução '2450':
    O Microsoft Access não pode localizar o formulário referenciado 'frmIncluirClientes'.


    Sou iniciante em VBA... não sei se estou entendo corretamente, mas parece que o código do frmPedidos ficou interrompido assim que abriu a segunda janela popup do frmIncluirClientes. Quando fechei, ele voltou a ler e daí não achou a janela aberta, é isso?


    Fiz o seguinte teste:

    No formulário de incluir Clientes (frmIncluirClientes), inseri o código:

    Código:
    Private Sub Form_Load()

        Me.txtCPF.SetFocus

        Forms!frmPedidos!cboCPF = Me.txtCPF

    End Sub



    Está aparecendo Erro em tempo de execução '2115'

    A macro ou função definida como a propriedade BeforeUpdate ou ValidationRule para este campo está evitando que o Microsoft Access salve os dados do campo.


    No editor VBA, ele fica parado na linha
    Forms!frmPedidos!cboCPF = Me.txtCPF

    Colocando o mouse sobre o cboCPF vejo que ele está com o valor do CPF teste que inseri, mas o txt.CPF está com valor Nulo.

    Agradeço se puderem me ajudar

    Abraço!
    avatar
    dsavoia
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 14/07/2015

    [Resolvido]Copiar e colar texto do Campo em Formulários diferentes Empty Re: [Resolvido]Copiar e colar texto do Campo em Formulários diferentes

    Mensagem  dsavoia 13/9/2015, 22:25

    No final consegui resolver fazendo o seguinte:

    1)Criei uma variável pública em um módulo chamado ModuloCopiar contendo

    Código:

    Option Compare Database
    Option Explicit

    Public strCopiarCPF As String

    2) Depois, no frmPedidos,

    Código:

    Private Sub cboCPF_BeforeUpdate(Cancel As Integer)

    If (IsNull(DLookup("[CPF]", "tblClientes", "[CPF] ='" & Me!CPF & "'"))) Then

       MsgBox "CPF não cadastrado no sistema!", vbInformation, "Aviso"

       ModuloCopiar.strCopiarCPF = Me.cboCPF 'para que a variável pública tenha o valor do CPF digitado

       DoCmd.OpenForm "frmIncluirClientes", acNormal, , , acFormAdd, acDialog
      
    End If

    End Sub

    3) Por fim no frmIncluirCliente

    Código:
     
    Private Sub Form_Open(Cancel As Integer)

        Me.txtCPF.SetFocus
        Me.txtCPF.Text = ModuloCopiar.strCopiarCPF  'para que o valor da variável pública apareça na caixa de texto
        Me.txtNOME.SetFocus  'para colocar o foco no próximo campo, deixei a caixa de texto txtCPF desativada
        
    End Sub

    Era isso!! Valeu a ajuda!

    Conteúdo patrocinado


    [Resolvido]Copiar e colar texto do Campo em Formulários diferentes Empty Re: [Resolvido]Copiar e colar texto do Campo em Formulários diferentes

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 00:23