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

    Validar campos ao sair

    avatar
    trindade97
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 27/09/2023

    Validar campos  ao sair Empty Validar campos ao sair

    Mensagem  trindade97 20/10/2024, 22:11

    Boa noite,
    Tenho dois campos em um Form.
    O campo A recebe sempre dados, o campo B pode receber ou não dependendo do valor inserido no campo A.

    Tentei fazer assim mas não deu certo, se puderem ajudar desde já o meu agradecimento
    No evento ao sair do form:

    Private Sub Form_Close()
    If Me.Campo_A.Value = "aaaaaa" And "bbbbb" And  “ccc” And IsNull(Me.Campo_B) Then

    MsgBox "dados em falta no campo_B"
    Me.Campo_B.SetFocus
    DoCmd.CancelEvent
    Else
    End if
    End sub
    resumindo: se o Campo_A  tiver  um determinado dado o campo_B não pode ser nulo, caso contrario o campo_B pode ficar  nulo
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3501
    Registrado : 13/12/2016

    Validar campos  ao sair Empty Re: Validar campos ao sair

    Mensagem  Alexandre Fim 20/10/2024, 22:30

    Olá Trindade,

    Esta validação deve ser feita no botão "Salvar" e não ao fechar o formulário.
    Se quiser fechar o formulário, emite mensagem que os dados não serão considerados e fecha o formulário.

    Minha sugestão seria este código:


    Código:


    Private Sub btnSalvar_Click()
    On Error GoTo trata_erro
       
        '-- Executa a função antes de salvar ------------
        If fncValida = False Then
            Exit Sub
        End If
        '------------------------------------------------

        DoCmd.RunCommand acCmdSaveRecord
        MsgBox "Registro gravado com sucesso.", vbInformation, "Mensagem"
       
        Exit Sub

    trata_erro:
        MsgBox "Erro ocorrido: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Sub
       

    End Sub

    Private Sub btnSair_Click()
       
        '-- se houve alguma alteração  no formulário
        If Dirty = True Then
            If MsgBox("Deseja relamente sair? Os dados informados serão desconsiderados.", vbQuestion + vbYesNo, "Confirma?") = vbYes Then
                '-- desfaz o registro e fecha o formulario em seguida
                Me.Undo
                DoCmd.Close acForm, Me.Name
                '--------------------------------------------------------
                Exit Sub
            End If
        Else
        '-- Se não houve, fecha normalmente
            DoCmd.Close acForm, Me.Name
        End If
       

    End Sub


    Public Function fncValida() As Boolean

        '-- Inicia a função como VERDADEIRA
        fncValida = True
       
        '-- validação de campos
        If IsNull(Me.[CAMPO_A]) Or Trim(Me.[CAMPO_A]) = Empty Then
            MsgBox "O CAMPO_A não pode ser Nulo.", vbExclamation, "Aviso"
            Me.[CAMPO_A].SetFocus
            fncValida = False '-- Se a condição não for aceita, define função como FALSA
            Exit Function
        End If
           
        '-- Validação de outros campos

        'If IsNull....Then
        '    MsgBox ".....", vbExclamation, "Aviso"
        '    Me.[CAMPO_A].SetFocus
        '    fncValida = False
        '    Exit Function
        'End If


    End Function





    É isso

    Att,

    Alexandre Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Validar campos  ao sair Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    trindade97
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 27/09/2023

    Validar campos  ao sair Empty Re: Validar campos ao sair

    Mensagem  trindade97 21/10/2024, 15:37

    Obrigado pela atenção
    tenho alguma dificuldade em aplicar e compreender o codigo que referiu, mas sem duvida é otima ideia aplicar o codigo no comando "Salvar"

    posso também não me ter explicado corretamente, e o codigo não estar de acordo com o que pretendo,

    no entanto, apliquei assim e parece funcionar:

    Private Sub BtnSalvar_Click()
           If Me.Cbx_Categoria.Value = "Fruta" And IsNull(Me.TxtNomeProd) Then
               MsgBox "Nome do produto em falta"
           Me.TxtNomeProd.SetFocus
       Exit Sub
    End If
           If Me. Cbx_Categoria.Value = "Hortaliça" And IsNull(Me.TxtNomeProd) Then
               MsgBox "Nome do produto em falta"
           Me.TxtNomeProd.SetFocus
       Exit Sub
    End If
           If Me. Cbx_Categoria.Value = "Legumes" And IsNull(Me.TxtNomeProd) Then
               MsgBox "Nome do produto em falta"
           Me.TxtNomeProd.SetFocus
       Exit Sub
    End If
    DoCmd.RunCommand acCmdSaveRecord
       MsgBox "Registro gravado com sucesso.", vbInformation, "Mensagem"
    End Sub

    preciso deste codigo porquê, porque tenho categorias que necessitam de ser identificadas no campo "TxtNomeProd." e tenho outras categorias que não são identificadas.
    se tiverem uma solução mais eficaz ou indicada, agradeço.

    obrigado

    Conteúdo patrocinado


    Validar campos  ao sair Empty Re: Validar campos ao sair

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/12/2024, 18:08