MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

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

    Compartilhe

    Amandalmeida
    Novato
    Novato

    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

    Mensagem  Amandalmeida em Qua 04 Maio 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?

    LeoStar
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  LeoStar em Qui 05 Maio 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.

    Amandalmeida
    Novato
    Novato

    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

    Mensagem  Amandalmeida em Qui 05 Maio 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.

    LeoStar
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  LeoStar em Sex 06 Maio 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.

    Amandalmeida
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Amandalmeida em Sex 06 Maio 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

      Data/hora atual: Dom 04 Dez 2016, 20:23