none
Validação de campos de formularios ( VBA Access) RRS feed

  • Pergunta

  • Boa Tarde

     

    galera poderiam me ajudar? estou tendo dificuldades para realizar a validação de campos de formualrios, quero que todos os campos sejam do evento onlostfocus

     

    mas eu não consigo condificar sempre da algum erro....

     

    sera q vcs conhecem algum livro que explica essa parte?

    quinta-feira, 21 de agosto de 2008 17:40

Respostas

  •  

    Ítalo... dá uma olhada, é coisa simples..

     

     

    ' criar função de validação num módulo, para ser utilizada em qquer parte do programa

    ' Função que valida se o valor foi informado.

    Public Function VazioOuNulo(x As Variant) As Boolean

        If IsNull(x) Then

            VazioOuNulo = True

        ElseIf IsEmpty(x) Then

            VazioOuNulo = True

        ElseIf x = "" Then

            VazioOuNulo = True

        Else

            VazioOuNulo = False

        End If

    End Function

     

     

     

     

     

    Private Sub ID_Char_LostFocus()
    'o Id deve ficar com as inicias BRA, checar se foram digitados apenas letras


        If VazioOuNulo(Me.ID_Char.Value) = True Then  ' realiza a verificação se foi informado o valor
            MsgBox "Digite a inforação solicitada!", vbExclamation
            [Forms!Projetos!Page1!ID_Char].SetFocus
            Exit Sub
        End If

        If Right(Me.ID_Char.Value, 3) <> "BRA" Then
            MsgBox "Informe com as iniciais 'BRA'!", vbExclamation
            [Forms!Projetos!Page1!ID_Char].SetFocus
        End If
    End Sub

     

     

     

     

    'o Id deve ficar com 4 digitos , checar se - foram digitados 4 numeros e se foram digitos apenas numeros

    Private Sub ID_Num_LostFocus()

        If VazioOuNulo(Me.ID_Num.Value) = True Then

            MsgBox "Digite a informação solicitada!", vbExclamation

            Me![ID_Num].SetFocus

            Exit Sub

        End If

       

        ' verifica se foi digitado apenas numeros

        If IsNumeric(Me.ID_Num.Value) = False Then

            MsgBox "Digite apenas valores númericos!", vbExclamation

            Me![ID_Num].SetFocus

            Exit Sub

        End If

       

        ' verifica se foi digitado apenas numeros

        If Len(Me.ID_Num.Value) <> 4 Then

            MsgBox "Deve ser digitado 4 valores numéricos!", vbExclamation

            Me![ID_Num].SetFocus

        End If

    End Sub

     

     

    Em cima disso, vc realiza as demais validações.

     

    Caso não entenda algo.. estamos aqui..

     

    sexta-feira, 22 de agosto de 2008 21:23

Todas as Respostas

  • Ítalo,

     

    poste para nós como vc está realizando a validação..

    poste o código..

     

     

     

    quinta-feira, 21 de agosto de 2008 23:01
  • Dois text box para armazenar informações: quero juntar essas duas informaçõe se um text box soh

    Code Snippet

    Private Sub ID_Char_LostFocus()
    'o Id deve ficar com as inicias BRA, checar se foram digitados apenas letras
    Dim check As Boolean
    check = False
    If check = IsEmpty(ID_Char) Then
        MsgBox "digite a inforação solicitada!"
        [Forms!Projetos!Page1!ID_Char].SetFocus
    End If

    End Sub

    Private Sub ID_Num_LostFocus()
    'o Id deve ficar com 4 digitos , checar se - foram digitados 4 numeros e se foram digitos apenas numeros
    Dim check As Boolean

    check = False
    If check = IsEmpty(ID_Num) Then
        MsgBox " digite a informação solicitada"
        Me![ID_Num].SetFocus
    End If

    End Sub

     

     

     

    quero validar  a data para nao ser vazia e nem menor que data inicial

     

    Code Snippet

    Private Sub StartDate_LostFocus()
      ' validar se o campo não esta vazio,
       ' 2º data deve contar apenas numeros , 3º data deve seguir o modelo dd/mm/aaaa
     ' 4º ano não pode ser menor que 2008
     
     If VarType(StartDate) <> 7 Then
      MsgBox " Por digite um data valida!"
      Me![StartDate].SetFocus
     End If
     
    End Sub

    Private Sub FinishDate_LostFocus()
     ' validar se o campo não esta vazio, e se a data foi digitada corretamente, 1º data de fim não pode
     ' ser menor que a data de inicio, 2º data deve contar apenas numeros , 3º data deve seguir o modelo dd/mm/aaaa
     ' 4º ano não pode ser menor que 2008
     
        If FinishDate = StartDate Then
         MsgBox " a data final deve ser maior que a data inicial"
        ElseIf Len(FinishDate) = 0 Then
         MsgBox " Por favor digite uma data "
        End If
      
    End Sub

     

     


    Para checar campos numericos e exibir uma mensagem

     

    Code Snippet

    Private Sub Capex_Planejado_LostFocus()
    ' campo deve ser do tipo moeda
    If IsNumeric(capex_planejado) Then
     MsgBox "ok"
    End If

     

     

    checar combobox - se ela esta vazia

     

    Code Snippet

    Private Sub Gestor_LostFocus()
    ' campo obrigatorio, mostrar msg de erro caso campo nao for preenchido

    Dim check As Boolean
    check = False

    If check = IsEmpty(Gestor) Then
        MsgBox "digite o solicitado !"
        Me![Gestor].SetFocus
    End If


    End Sub

     

     


    estou no agurado,

     

    Obrigado desde ja.

    sexta-feira, 22 de agosto de 2008 20:14
  •  

    Ítalo... dá uma olhada, é coisa simples..

     

     

    ' criar função de validação num módulo, para ser utilizada em qquer parte do programa

    ' Função que valida se o valor foi informado.

    Public Function VazioOuNulo(x As Variant) As Boolean

        If IsNull(x) Then

            VazioOuNulo = True

        ElseIf IsEmpty(x) Then

            VazioOuNulo = True

        ElseIf x = "" Then

            VazioOuNulo = True

        Else

            VazioOuNulo = False

        End If

    End Function

     

     

     

     

     

    Private Sub ID_Char_LostFocus()
    'o Id deve ficar com as inicias BRA, checar se foram digitados apenas letras


        If VazioOuNulo(Me.ID_Char.Value) = True Then  ' realiza a verificação se foi informado o valor
            MsgBox "Digite a inforação solicitada!", vbExclamation
            [Forms!Projetos!Page1!ID_Char].SetFocus
            Exit Sub
        End If

        If Right(Me.ID_Char.Value, 3) <> "BRA" Then
            MsgBox "Informe com as iniciais 'BRA'!", vbExclamation
            [Forms!Projetos!Page1!ID_Char].SetFocus
        End If
    End Sub

     

     

     

     

    'o Id deve ficar com 4 digitos , checar se - foram digitados 4 numeros e se foram digitos apenas numeros

    Private Sub ID_Num_LostFocus()

        If VazioOuNulo(Me.ID_Num.Value) = True Then

            MsgBox "Digite a informação solicitada!", vbExclamation

            Me![ID_Num].SetFocus

            Exit Sub

        End If

       

        ' verifica se foi digitado apenas numeros

        If IsNumeric(Me.ID_Num.Value) = False Then

            MsgBox "Digite apenas valores númericos!", vbExclamation

            Me![ID_Num].SetFocus

            Exit Sub

        End If

       

        ' verifica se foi digitado apenas numeros

        If Len(Me.ID_Num.Value) <> 4 Then

            MsgBox "Deve ser digitado 4 valores numéricos!", vbExclamation

            Me![ID_Num].SetFocus

        End If

    End Sub

     

     

    Em cima disso, vc realiza as demais validações.

     

    Caso não entenda algo.. estamos aqui..

     

    sexta-feira, 22 de agosto de 2008 21:23
  • Na propriedade do formulario:

    If Fnc_Validar_Campos(Form_NomedoForm) = True Then
       continua a ação...

    End If

    ----------------------------------------------------------------------------------------------------------------

    Criar uma função em um módulo:

    'Frm é o formulário que usará a função e declarar ela booleana para retornar true ou false.

    Public Function Fnc_Validar_Campos(Frm As Form) As Boolean

    Fnc_Validar_Campos = True
          For Each Control In Frm.Controls
               If Control.Tag = "" Then
                   If Control.Value = "" Or IsNull(Control.Value) Then
                       MsgBox "Antes de continuar a ação, é necessário preencher o campo!",vbInformation,"Atenção"
                       Fnc_Validar_Campos = False
                       Exit Function
                    End If
                 End If
            Next
    End Function

    sexta-feira, 12 de julho de 2019 14:17