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]Criticar ao fechar o formulário.

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 21/12/2009

    [Resolvido]Criticar ao fechar o formulário. Empty [Resolvido]Criticar ao fechar o formulário.

    Mensagem  wsenna 16/1/2014, 17:44

    Olá Feras de plantão, boa noite.

    Procurando aqui no forum acabei achando esse código passado pelo Grande Mestre JPaulo que faz a verificação somente dos campos que se desejar.

    Public Function valNullControl(frm As Form)
    Dim ctl As Control
    Dim minhaArray As String
    Dim validacaoOk As Byte

    validacaoOk = 0

    For Each ctl In frm.Controls
    If ctl.Tag <> Null Or ctl.Tag <> "" Then
    ctl.BackColor = 16777215
    End If
    Next ctl

    For Each ctl In frm.Controls
    If ctl.Visible = True Then
    If ctl.Tag <> Null Or ctl.Tag <> "" Then
    If IsNull(ctl) = True Or ctl = "" Then
    ctl.BackColor = 161616
    validacaoOk = 1
    minhaArray = minhaArray & ctl.Tag & ", "
    End If
    End If
    End If
    Next ctl
    If validacaoOk = 1 Then MsgBox "Campo Obrigatório: " & minhaArray

    End Function


    No botão adicionar o código ficará assim:

    Private Sub Adicionar_Click()

    Dim db As Database
    Dim rs As Recordset

    If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then

    If valNullControl(Me) = False Then
    Exit Sub
    End If

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
    rs.AddNew

    Agora é que a coisa pega:

    Como sinalizar para o usuário no evento ao fechar o formulário ou mudar de registro que o mesmo ainda não foi gravado?

    Abraços, WSenna


    Última edição por wsenna em 17/1/2014, 08:35, editado 1 vez(es)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Criticar ao fechar o formulário. Empty Re: [Resolvido]Criticar ao fechar o formulário.

    Mensagem  criquio 16/1/2014, 17:52

    Geralmente eu uso limpar os campos após a gravação. Nesse caso, seria só verificar se os campos contem dados, o que significaria que os mesmos ainda não foram gravados.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 21/12/2009

    [Resolvido]Criticar ao fechar o formulário. Empty Re: [Resolvido]Criticar ao fechar o formulário.

    Mensagem  wsenna 16/1/2014, 18:05

    Grande Criquio, boa noite.

    Grato pela sua atenção, mas como faço isso no código acima?

    Tentei inserir um campo do tipo sim/não para que ao gravar o registro tornasse este campo =-1 e assim ao fechar ou mudar de registro esse campo seria pesquisado e se estivesse com valor 0 (zero) emitiria uma mensagem mas não obtive sucesso.

    Abraços, WSenna
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Criticar ao fechar o formulário. Empty Re: [Resolvido]Criticar ao fechar o formulário.

    Mensagem  criquio 16/1/2014, 18:45

    Nem é preciso incluir na mesma função. Podemos usar o evento "Ao descarregar" do formulário:

    Código:
    Dim C As Control, TemNulo As Boolean

    TemNulo = False

    For Each C In Me.Controls
        If C.Tag = "Requerido" Then
            If Not IsNull(C) Then
                TemNulo = True
            End If
        End If
    Next

    If TemNulo Then
        MsgBox "Há registro sem gravar. O formulário não pode ser fechado agora."
        DoCmd.CancelEvent
    End If

    Estou supondo que queira verificar apenas os campos com a Tag com algo que indique campo requerido. Caso queria verificar todos os campos, pode tirar o If que verifica a Tag.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 21/12/2009

    [Resolvido]Criticar ao fechar o formulário. Empty Re: [Resolvido]Criticar ao fechar o formulário.

    Mensagem  wsenna 16/1/2014, 19:58

    Legal Criquio.

    Só precisamos agora, ao invés de Requerido que a tag seja substituída pelo nome do controle.

    WSenna
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Criticar ao fechar o formulário. Empty Re: [Resolvido]Criticar ao fechar o formulário.

    Mensagem  criquio 17/1/2014, 17:52

    Então já resolveu, não?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Criticar ao fechar o formulário. Empty Re: [Resolvido]Criticar ao fechar o formulário.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 17:58