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

    Impedir que o formulário salve informações na tabela

    avatar
    Amandalmeida
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 01/12/2015

    Impedir que o formulário salve informações na tabela Empty Impedir que o formulário salve informações na tabela

    Mensagem  Amandalmeida 4/5/2016, 18:48

    Boa tarde, pessoal!

    Estou com um problema no meu sistema.

    Tenho um formulário que funciona para cadastrar treinamentos realizados. Neste formulário, eu entro com as informações de matrícula do funcionário, nome do treinamento e a data que foi realizado.
    Mas, gostaria que quando apertasse o botão de salvar, ele não permitisse salvar caso algum campo esteja em branco. Fiz a seguinte programação no VBA:

    Private Sub Command83_Click()
    If IsNull(Me.Matricula) Then
    Me.Dirty = False
      MsgBox "Campos Inválidos", vbInformation, "Alerta"
    Else
    DoCmd.Save
       MsgBox "Funcionário cadastrado com sucesso!", vbInformation + vbOKOnly
       Me.Refresh
       DoCmd.GoToRecord , , acNewRec
    End If
    End Sub


    Ele funciona apenas para me informar que o campo está em branco, mas não impede que a informação seja salva.
    Alguém poderia me ajudar?
    avatar
    LeoStar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 106
    Registrado : 18/05/2010

    Impedir que o formulário salve informações na tabela Empty Impedir que o formulário salve informações na tabela

    Mensagem  LeoStar 5/5/2016, 05:28

    Olá Amandalmeida, experimente assim:


    Private Sub Command83_Click()
    If IsNull(Me.Matricula) Then

     MsgBox "Preencha o campo em branco", vbOKOnly, "CONTROLE DE REGISTOS"
           DoCmd.GoToControl "Matricula"
     End
    ' O que acontece é que a rotina não continua enquanto não tiver preenchido o campo em branco.
    Else
    DoCmd.Save
      MsgBox "Funcionário cadastrado com sucesso!", vbInformation + vbOKOnly
      Me.Refresh
      DoCmd.GoToRecord , , acNewRec
    End If
    End Sub


    Espero que tenha ajudado.
    avatar
    Amandalmeida
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 01/12/2015

    Impedir que o formulário salve informações na tabela Empty Impedir que o formulário salve informações na tabela

    Mensagem  Amandalmeida 5/5/2016, 14:15

    Oi Leo,

    Obrigada pela ajuda!
    Mas ainda não funcionou. Testei no sistema e ele continua salvando, mesmo sem as informações preenchidas.
    avatar
    LeoStar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 106
    Registrado : 18/05/2010

    Impedir que o formulário salve informações na tabela Empty Impedir que o formulário salve informações na tabela

    Mensagem  LeoStar 6/5/2016, 10:47

    Olá Amanda...

    Adicione este código no evento do form "ao remover da memória":

    Private Sub Form_Unload(Cancel As Integer)
    With CodeContextObject
    If (IsNull(Me.Matricula) Or IsNull(Me.Campo2) Or IsNull(Me.Campo3)) Then
           
               MsgBox "Existem campos em branco. O registo não será guardado!", vbOKOnly, "CONTROLE DE REGISTOS"
               DoCmd.SetWarnings False
               DoCmd.RunCommand acCmdUndo
               DoCmd.SetWarnings True
           End If
       End With
    End Sub

    Note que onde está Campo2 e Campo3 deve por o nome dos seus outros 2 campos.

    Assim mesmo que feche o form de qualquer forma o registo que contenha campos em branco não será guardado.

    Espero que tenha ajudado. Bom trabalho.
    avatar
    Amandalmeida
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 01/12/2015

    Impedir que o formulário salve informações na tabela Empty Re: Impedir que o formulário salve informações na tabela

    Mensagem  Amandalmeida 6/5/2016, 15:32

    Olá Leo!

    Este código todo que você me mandou não funcionou também.
    Mas, usei uma parte dele só e consegui. Ficou assim:

    Private Sub Command85_Click()
    If IsNull(Me.Matricula) Then
    MsgBox "Campos Inválidos! Favor preencher os campos em branco", vbInformation, "Cadastro de Registros"
    DoCmd.RunCommand acCmdUndo
    Me.Refresh

    Else
    DoCmd.Save
    MsgBox "Funcionário cadastrado com sucesso!", vbInformation + vbOKOnly
    Me.Refresh
    DoCmd.GoToRecord , , acNewRec
    End If
    End Sub


    Muito Obrigada pela ajuda

    Conteúdo patrocinado


    Impedir que o formulário salve informações na tabela Empty Re: Impedir que o formulário salve informações na tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 06:10