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] Código para evitar erro 3101

    avatar
    Helden
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 95
    Registrado : 27/05/2016

    [Resolvido] Código para evitar erro 3101 Empty [Resolvido] Código para evitar erro 3101

    Mensagem  Helden Sex Ago 13, 2021 2:10 am

    boa noite amigos, gostaria de ajuda para resolver um problema.
    tenho frmPessoa com campo txtNomePaciente
    subformulario subfrmDados com campo txtMedicamentos

    Quando preencho txtMedicamentos no subformulario, sem registro no txtNomePaciente da o erro porque não é encontrada a chave primaria na tabela tblPaciente.

    Gostaria de impedir que o cliente registre no campos do subformulario sem o txtNomePaciente estar com registro.
    Já tente vários códigos. mas não consegui, antes de atualizar nos campos do subformulario e até ao apertra o mouse no subformulario tipo

    If IsNull(Me!NomePaciente) Then
       MsgBox "Informe o nome"
       Me!txtNomePaciente.SetFocus
       Cancel = True
    End If
    avatar
    egnaldo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    Registrado : 11/03/2012

    [Resolvido] Código para evitar erro 3101 Empty Re: [Resolvido] Código para evitar erro 3101

    Mensagem  egnaldo Sex Ago 13, 2021 10:19 am

    Bom dia
    Você poderia bloquear este subform,
    no formulario principal :
    algo assim:
    na folha de Propriedades do formulário principal no evento "No Atual"

    If IsNull(Me!NomePaciente) or Me!NomePaciente = "" Then
    Me.subfrmDados.Form.AllowEdits = false
    else
    Me.subfrmDados.Form.AllowEdits = true
    end if

    outra opção mas certa acredito, é gerar uma tabela TblMedicamentos, ja que nomes de remédios tem um padrão
    e no formulário principal colocar uma caixa de combinação para trazer estes remédios e um botão para lançar no sub
    mas lançar somente o id do remédio e fazer uma consulta relacionada para este sub.
    avatar
    Helden
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 95
    Registrado : 27/05/2016

    [Resolvido] Código para evitar erro 3101 Empty Re: [Resolvido] Código para evitar erro 3101

    Mensagem  Helden Dom Ago 15, 2021 10:57 pm

    boa noite
    com o codigo volta mensagem:
    voce tentou atribuir valor null a uma variável que nao é uma Variant

    isso acontece pq o subformulário não encontra chave primaria na tabela pq o nomePaciente nao foi registrado.
    avatar
    Helden
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 95
    Registrado : 27/05/2016

    [Resolvido] Código para evitar erro 3101 Empty Re: [Resolvido] Código para evitar erro 3101

    Mensagem  Helden Dom Ago 15, 2021 11:02 pm

    sobre a opçao, essa receita tem 110 caixas de textos e ja tem tblMedicamentos com combobox no subformlario.
    acho que o código esta correto mas não sei pq não esta funcionando.
    avatar
    Helden
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 95
    Registrado : 27/05/2016

    [Resolvido] Código para evitar erro 3101 Empty Re: [Resolvido] Código para evitar erro 3101

    Mensagem  Helden Seg Ago 16, 2021 1:23 am

    egnaldo, agradeço muitissimo a ajuda, tentei muitas vezes o codigo em tudo que é lugar rsss mas nao deu. após uma tarde de domingo inteira consegui da seguinte forma:
    Coloquei esse codigo No atual, no formulario.

    Private Sub Form_Current()
    If IsNull(Me.NomePaciente) Then
    Me.tblPrescrição_subformulário1.Locked = True
    Else
    Me.tblPrescrição_subformulário1.Locked = False
    End If
    End Sub

    Essa "" tblPrescrição_subformulario1"" é o nome do subformulario ,nome meio errado concordo, mas nao faz diferenca no codigo.
    mais uma vez obrigado!!

      Data/hora atual: Sab Set 18, 2021 4:14 pm